
単純なbashコマンドを使用するとき
#!/bin/bash
echo Please, enter your name
read NAME
echo "Hi $NAME!"
そしてそれをsource filename.sh
使って実行:Undefined variable
何が問題なのでしょうか?検索しましたが、解決策はありません。
答え1
今後の参考のための要約:
shebangはを指しますが、コマンド/bin/bash
のsource
ためにコードは現在のシェルで実行され、結果はですcsh
。
コードは私のDebianでは動作しますbash
が。csh
source filename.sh
bash
期待どおりに実行するには、bash
実行可能にし(chmod a+x filename.sh
)で呼び出す必要があります./filename.sh
。
最後に、#!/bin/bash
この特別なケースでは、shebangは間違った方法で入った。