.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 するのををやめた。

カテゴリ

トラックバック(0)

このブログ記事を参照しているブログ一覧: .bashrc と cd とシェルスクリプトと #!/bin/bash の話

このブログ記事に対するトラックバックURL: http://je-pu-pu.jp/blog/mt-tb.cgi/462

コメント(1)

JE :

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

コメントする

このブログ記事について

このページは、が2005年9月30日 23:59に書いたブログ記事です。

ひとつ前のブログ記事は「皇帝ビル・ゲイツと不死鳥スティーブ・ジョブズ」です。

次のブログ記事は「2005/10/01 今週のまとめ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.0