親スクリプトが引数付きで呼び出されn
、引数 #3 のすべての引数を子スクリプトに渡したいとします。
bashスクリプトでそれを行うにはどうすればよいですか?
$@
引数リスト全体が得られることはわかっていますが、これは私が望んでいるものではありません。
親スクリプトが引数付きで呼び出されn
、引数 #3 のすべての引数を子スクリプトに渡したいとします。
bashスクリプトでそれを行うにはどうすればよいですか?
$@
引数リスト全体が得られることはわかっていますが、これは私が望んでいるものではありません。
このような:
child_script "${@:3}"
引数 3 から始まる 4 つの引数を渡したい場合:
child_script "${@:3:4}"
shift
最初の 2 つの引数を削除するために使用します。
shift 2
child_script "$@"
$1
とを使用する必要がある場合は$2
、最初にそれらを変数に保存できます。
別のオプションは、引数を配列に割り当てることです。
args=("$@")
配列の最初の 2 つの要素を削除します。
unset args[0]
unset args[1]
次に、この配列を使用して子スクリプトを呼び出します。
child_script "${args[@]}"
元の値を維持するという議論については、子スクリプトでシフトを行うことができます。