尝试使用PUSHD / POPD将脚本从BASH转换为ZSH

时间:2019-07-01 12:55:44

标签: bash zsh pushd

我正在尝试将以下脚本从BASH转换为ZSH,而POPD则无法使用...有人可以帮我吗?

runMyScript() {
  if [[ -e $PROJECTS_HOME/myFolder/myScript.sh]]; then
    pushd $PROJECTS_HOME/myFolder > dev/null
    . ./myScript.sh
    popd > dev/null
  else
    ... //Do something else instead
  fi
}
runMyScript

错误是这个

myScript:popd:5: directory stack empty

现在我知道这意味着什么,但是我似乎无法修复它。我也正在努力寻找有意义的修复程序。

如果我手动运行脚本,它似乎可以正常运行,但是如果我通过调用runMyScript来运行它,那似乎是失败的。

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

我根据@shellter的一些反馈更改了脚本,脚本现在似乎可以正常工作了……新代码如下:

runMyScript() {
  if [ -f "$PROJECTS_HOME"/myFolder/myScript.sh]; then
    pushd "$PROJECTS_HOME"/myFolder
    . ./myScript.sh
    popd
  else
    // CREATE the variables needed to run this script
  fi
}
runMyScript