変数をインポートするときにbashスクリプトに変数を渡す

変数をインポートするときにbashスクリプトに変数を渡す

main.shに次のものがあるとします。

$NAME="a string"
if [ -f $HOME/install.sh ]
    . $HOME/install.sh $NAME
fi

そしてinstall.shから:

echo $1

これはechoになっていますが、"a string"何もエコーしません。なぜ?

ベストアンサー1

マイケル・モロジェほとんどの問題に対処しており、Bashを使用しているので、彼の修正はうまくいくでしょう。

パラメータを使用してスクリプトを取得する機能が恥ずかしいことに興味があるかもしれません。または、shソーススクリプトのパラメータが無視され、パラメータが引用されるため、何もエコーされません。dashmain.sh$1main.sh.

からスクリプトをインポートすると、shソーススクリプトのテキストをソーススクリプトファイルにコピーして貼り付けたのと同じです。次の点を考慮してください(Michaelが提案した修正を適用しました)。

$ bash ./test.sh
A String
$ sh ./test.sh

$ sh ./test.sh "HELLO WORLD"
HELLO WORLD

おすすめ記事