2

親スクリプトが引数付きで呼び出されn、引数 #3 のすべての引数を子スクリプトに渡したいとします。

bashスクリプトでそれを行うにはどうすればよいですか?

$@引数リスト全体が得られることはわかっていますが、これは私が望んでいるものではありません。

4

3 に答える 3

5

このような:

child_script "${@:3}"

引数 3 から始まる 4 つの引数を渡したい場合:

child_script "${@:3:4}"
于 2013-07-19T18:37:06.943 に答える
4

shift最初の 2 つの引数を削除するために使用します。

shift 2
child_script "$@"

$1とを使用する必要がある場合は$2、最初にそれらを変数に保存できます。

別のオプションは、引数を配列に割り当てることです。

args=("$@")

配列の最初の 2 つの要素を削除します。

unset args[0]
unset args[1]

次に、この配列を使用して子スクリプトを呼び出します。

child_script "${args[@]}"
于 2013-07-19T18:13:38.577 に答える
0

元の値を維持するという議論については、子スクリプトでシフトを行うことができます。

于 2013-07-19T21:23:47.163 に答える