私はこの状況を持っています:
./
./myscript.sh
./arguments.txt
./test.sh
内部myscript.sh
では、ファイルを実行test.sh
して、内部に含まれている引数をそれに渡さなければなりませんarguments.txt
。
myscript.shは次のとおりです。
arguments=$(cat arguments.txt)
source test.sh $arguments
これは、arguments.txtに最大で1つの引数が含まれている場合にうまく機能します。
firstargument
置換は次のとおりです。
++ source test.sh 'firstargument'
しかし、問題は2つ以上の引数にあります。これを行います:
++ source test.sh 'firstargument secondargument'
また、内部の引数の数は事前にわかりませんarguments.txt
。ゼロ以上の場合があります。
あなたが説明しているのは、bashのデフォルトの動作ではありません。あなたは本当にbashを使用していますか、それとも他のシェル(これを行うzshなど)を使用していますか?
—
Patrick 14
@パトリックこんにちは、本物のバッシュです。とにかく私はとにかくおかげで答えをすでに得ました!
—
フェデリコポンジ14
あなたは実際
—
グレンジャックマン'21
source test.sh "$arguments"
に引用符で書いていますか?それはあなたの説明の1つの説明になるでしょう
二重引用符ありとなしの両方を試しました。bashの置換を使用すると、常に単一引用符が取得されます。したがって
—
Federico Ponzi 14
source test.sh "$arguments"
、source test.sh $arguments
両方ともになりsource test.sh 'firstargument secondargument'
ます。