17

別のシェル スクリプトからシェル スクリプトを呼び出していますが、呼び出されたスクリプトにはいくつかの入力 (コマンド ライン) パラメータが必要です。
以下のコードがありますが、うまくいきません。呼び出されたスクリプトに引数の値が渡されない理由がわかりません。

script1.sh
=======================================
#!/bin/bash
ARG1="val1"
ARG2="val2"
ARG3="val3"
. /home/admin/script2.sh "$ARG1" "$ARG2" "$ARG3"


script2.sh
=======================================
#!/bin/bash
echo "arg1 value is: $1 ....."
echo "arg2 value is: $2 ....."
echo "arg3 value is: $3 ....."

しかし、script1.sh を実行すると、次の結果が得られます。

arg1 value is:  .....
arg2 value is:  .....
arg3 value is:  .....

私は何が欠けていますか?

4

1 に答える 1

22

で 2 番目のスクリプトを. /home/admin/script2.sh取得することにより、効果的に最初のスクリプトに含めることができるため、元のスクリプトへのコマンド ライン引数を で取得できます$@。引数を指定して他のスクリプトを本当に呼び出したい場合は、次のようにします。

/home/admin/script2.sh "$ARG1" "$ARG2" "$ARG3"

(実行可能であることを確認してください)。

于 2013-01-13T10:14:31.120 に答える