pushdおよびpopdをUbuntuで利用する

pushdおよびpopdをUbuntuで利用する Shell

pushdおよびpopdは一部のシェル(bashやzshなど)でのみ利用可能で、一部のシェル(例えばshdash)では利用できません。Ubuntuでシェルスクリプトを実行する際にはデフォルトでdashが使用されますので、スクリプトファイルの先頭に記述されるshebang (#!/bin/bash) を正しく解釈するために、スクリプトを直接実行するか、明示的にbashを使用してスクリプトを実行する必要があります。

#!/bin/bash

BASEDIR=$(cd $(dirname $0)/..; pwd)

pushd ${BASEDIR}/hoge

# do something

popd > /dev/null

このスクリプトを実行する際には以下のコマンドを使用してください

bash hoge.sh

または、スクリプトに実行権限を与えてから実行します。

chmod +x hoge.sh
./hoge.sh

これらのコマンドは、スクリプトをbashで実行します。スクリプトの先頭にある #!/bin/bash のshebangが正しく解釈され、スクリプトはbashで実行されます。これにより、pushd および popd コマンドが正しく解釈され、期待通りの動作をします。

これらの変更により、Ubuntu環境でもスクリプトが正常に動作するはずです。

タイトルとURLをコピーしました