.bash_函数:从另一个函数调用函数
我的.bash_函数:从另一个函数调用函数,bash,Bash,我的.bash\u函数中定义了以下两个函数(源代码为.bashrc): 虽然我可以执行\u foo,但当我执行up时,up似乎不知道\u foo。我在这里做错了什么,或者这是不可能的吗?它确实“知道”\u-foo,但您没有将参数传递给\u-foo,所以这可能会导致混乱。Bash脚本是按顺序执行的。在您的情况下,\u foo()可以在up()之前定义,一切都应该正常工作。它看到basename很好。除非声明为局部变量,否则变量是全局变量。问题是\u foo()需要一个参数($1),但没有通过。顺便
.bash\u函数
中定义了以下两个函数(源代码为.bashrc
):
虽然我可以执行
\u foo
,但当我执行up
时,up似乎不知道\u foo
。我在这里做错了什么,或者这是不可能的吗?它确实“知道”\u-foo
,但您没有将参数传递给\u-foo
,所以这可能会导致混乱。Bash脚本是按顺序执行的。在您的情况下,\u foo()
可以在up()
之前定义,一切都应该正常工作。它看到basename
很好。除非声明为局部变量,否则变量是全局变量。问题是\u foo()
需要一个参数($1
),但没有通过。顺便说一句,这就是您的示例实际演示的内容。定义它们的顺序并不重要,只要它们在定义之后被调用即可<代码>up(){u foo;}_foo(){echo“bar”;};up工作正常。谢谢@DennisWilliamson。我不知道。
up() {
if (($# == 0)); then
cd ..
else
for basename; do
local result=$(_foo)
echo $result
cd $result
done
fi
}
_foo() {
echo ${PWD%/$1/*}/$basename
}