1

我在我的.bash_functions(来源.bashrc)中定义了以下两个函数:

up() {
  if (($# == 0)); then
    cd ..
  else
    for basename; do
      local result=$(_foo)
      echo $result
      cd $result
    done
  fi
}

_foo() {
  echo ${PWD%/$1/*}/$basename
}

虽然我可以执行_foo,但当我执行时up,up 似乎不知道_foo。我在这里做错了什么,还是这不可能?

4

2 回答 2

1

它确实“知道” _foo,但您没有将参数传递给_foo,所以这可能会导致混乱。

于 2012-05-04T09:15:38.670 回答
1

Bash 脚本按顺序执行。在您的情况下,_foo()可以在之前定义,up()并且一切都应该正常工作。

于 2012-05-04T11:20:05.887 回答