.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
}