.bashrc と cd とシェルスクリプトと #!/bin/bash の話
ログイン時に毎回決まったディレクトリに移動するから
.bashrc に cd を追加してみたら別のシェルスクリプトが動かなくなったよ!
というお話。
シェルスクリプト作ってー
$ vi test.sh
test.sh 中身はこんなのにしてー
#!/bin/bash
echo HOGE
実行ー
$ chmod 755 test.sh
$ ./test.sh
HOGE
これはちゃんと動く。
.bashrc 開いてー
$ vi ~/.bashrc
.bashrc に cd 追加してー
cd somedir
シェルスクリプト実行するとエラー
$ ./test.sh
./test.sh: ./test.sh: そのようなファイルやディレクトリはありません
どうもシェルスクリプトを実行する前にも .bashrc が実行されて、
そこでディレクトリを移動しちゃうと何かがまずいようです。
ちなみにシェルスクリプトの先頭の #!/bin/bash を #!/bin/sh にするとちゃんと実行できます。
/bin/sh は /bin/bash へのシンボリックリンクですが、
シェルスクリプトの先頭が #!/bin/sh の場合は .bashrc は実行されないようです。
対策
.bashrc の中で cd するのををやめた。
カテゴリ
developmentトラックバック(0)
このブログ記事を参照しているブログ一覧: .bashrc と cd とシェルスクリプトと #!/bin/bash の話
このブログ記事に対するトラックバックURL: http://je-pu-pu.jp/blog/mt-tb.cgi/462

もっと対策
ログインした時に実行したい処理は .bash_profile に書く