Linux Letter Logo

cdコマンドの移動先に長いパスを指定するのが大変なので、シェルスクリプトに記載してみましたが、単純にコマンドを記述するだけではターミナルに反映されないようでした。

cdが反映されない理由

シェルスクリプトを実行すると現在実行しているシェルとは別のサブシェル?で実行されるため、シェルスクリプトでcdを実行してもターミナルには反映されないらしい。

ターミナルに反映する方法

シェルスクリプトの実行時に「./foo.sh」と実行するのではなく、source コマンドを用いて「source foo.sh」と実行するとターミナルに反映される。

エイリアスを利用するのがベター

cdコマンドで移動するだけならエイリアスを設定するのが一番楽かもしれない。

シェルスクリプトで実行したcdをターミナルに反映させる

コメントを残す