質問: シェルスクリプトの実行、「source」と「.」の違いについて bashのシェルスクリプトを書いています。 当方、mac snow leopard を使っているため、seq コマンドがデフォルトでは使えません。 そこで、.bashrc 内に、seq 関数をあらかじめ自分で定義して、他で使い回したいと思っています。 .bashrc の中に、 function seq() { i=$1 while [ $i -le $2 ] ; do echo $i let i=$i+1 done } と、関数を定義しました。 seq 関数をターミナル上で実行すると、 >seq 0 2 0 1 2 と正しく、表示されます。次に、 #!/bin/sh seq 0 2 と記述したシェルスクリプト(temp.sh)を「source」で実行すると、 >source temp.sh 0 1 2 と正しく、表示されますが、「.」で実行すると、 >./temp.sh ./temp.sh: line 2: seq: command not found と言われます。 どのような理由によってこの違いが出るのでしょうか??
回答: 補足します . ./temp.sh ドット スペース ドット スラッシュ スクリプトファイル名 最初のドットはドットコマンド 次のドットはカレントパスを意味するメタ文字 ということです