Linux ボックスでこの問題に遭遇したことは知っていますが、現在 Mac OS X を使用しているため、同じことを行う必要があります。pushd と popd を使用して複数の場所にあるスクリプトまたはバイナリを呼び出したいのですが、この間同じ作業ディレクトリを維持する必要があります。
これはテスト スクリプトです。これは私が事前に行ったばかげた方法だと思います:
cd ~
pushd . 1>/dev/null
cd Documents
NEW_DIR=`pwd`
OLD_DIR=$(`popd`)
cd $OLD_DIR
echo Current directory: `pwd`
echo New directory: $NEW_DIR
結果は次のとおりです。
$ ./pushpop.sh
./pushpop.sh: line 5: cd: ~: No such file or directory
Current directory: /Users/NobleUplift
New directory: /Users/NobleUplift/Documents
動作しますが、エラーがないわけではありません。