シェル内のディレクトリ移動で戻りたい場合についてcontrol operatorの()でやれば頑張らなくていいことに気づいた

タイトルそのまんまなんですけど、最近shellを書くことが多かったんですが、いろんな都合上最初の実行ディレクトリに戻ってきたいとか割りとあるので一生懸命`dirname ${0}`とか使って実行ディレクトリ保存して、戻ってきたりとかしてたんですけど、それforkしてその環境で完結すればいいよねって気づいてforkできないかなと思って調べたらcontrol operatorの()でやればいけるということで簡単だった(man bashとかもうちょっとちゃんと勉強しろよ俺ですね orz)

echo `pwd`
(cd; echo `pwd`)
echo `pwd`

参照元など

http://stackoverflow.com/questions/3096561/fork-and-exec-in-bash
http://www.coins.tsukuba.ac.jp/~yas/coins/literacy-2008/2008-06-20/sh.html