回答:
すべての引数をリセットする必要があります。例を変更するには$3
:
$ set -- "${@:1:2}" "new" "${@:4}"
基本的に、変更する引数を除いて、すべての引数を現在の値に設定 します。POSIX 7set --
でも指定されています。
"${@:1:2}"
表記は、2つ(それゆえに拡張され2
たオフセットから開始表記)位置引数1
(すなわち$1
)。これは"$1" "$2"
この場合の省略形ですが、たとえばを置き換える場合ははるかに便利です"${17}"
。
読みやすさと保守性を最適化するには、より意味のある変数(わからない、または何か)を割り当て$1
て$2
から、それらの変数の1つを上書きし()、スクリプトへの入力を変更しないでおくinput_filename = $1
とoutput_filename = $2
よいでしょう。input_filename = 'chintz'
他の場所で必要。