たとえば下記のようなスクリプト
mycd.sh
#!/bin/sh
cd /path/to/destination
ShellScript内で現在のディレクトリを移動すると、終了時にディレクトリの変更は保持されない.
簡単な方法でディレクトリを位置を変更して、それをscript実行後も保持したかった。
きれいではないけどとりあえず実用的な方法をメモ。
source + alias
普通に実行するとカレントディレクトリは変化しない
$ sh mycd.sh # 実行後カレントディレクトリは変化しない
sourceコマンドを使うと、現在のshell-session上で状態変更してくれる
$ source mycd.sh # 実行後カレントディレクトリは変化
常にsourceをつかって実行すればよいのだけど、コマンドやユーティリティとして利用する際には不便だ.
そこで元コマンドの実行からaliasを貼って実行する方式だとタイプ数がへってよいと思う.
.zshrc/.bashrc
alias mycd='source mycd.sh'
これですっきり、コマンド化できた。
$ mycd # 実行後カレントディレクトリは変化