Попытка конвертировать скрипт, используя PUSHD / POPD из BASH в ZSH - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь преобразовать следующий скрипт из 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 Ответ

1 голос
/ 01 июля 2019

Я изменил сценарий, основываясь на некоторых отзывах @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
...