1

OS Xでは、パラメーター(フォルダー名)を受け取るbashシェルスクリプトがあります。

私が電話するとき:

echo "Build Starting for $1" | tee ~/MyFolder/$1/build.log

それは正しく機能します。正しい「$1」パラメーターを〜/ MyFolder / $ 1 / build.logファイル(存在する)にエコーします。ただし、別の実行可能ファイルを呼び出して$ 1パラメーターを使用しようとすると、パラメーターは常に空になります。

xcodebuild -configuration Release -project MyProject.xcodeproj | tee -a ~/MyFolder/$1/build.log

これにより、「〜/ MyFolder」に「build.log」が作成され、$1は無視されます。

何故ですか?どういうわけかそれを「エクスポート」する必要がありますか?

4

1 に答える 1

1

関数または別のスクリプトを呼び出していて、同じ$ 1、$ 2、..を使用できるようにする場合は、次を使用します。

myFunctionOrScript "$@"

"$@"はと同等であるため"$1" "$2" "$3" ...、サブプロセスの「$1」が親プロセスの「$1」と同じであることを確認します。

それらの値を新しい名前付き変数に割り当てることもできます。

export mydir=$1

次に、サブプロセススクリプト$mydirの代わりに使用します。$1

于 2013-01-22T21:24:55.337 に答える