1. ホーム
  2. bash

[解決済み] Bashでコマンドライン引数を変更するには?

2022-10-27 11:54:47

質問

Bashスクリプトのコマンドライン引数を変更する方法はありますか。例えば、以下のようなBashスクリプトが起動されます。

./foo arg1 arg2  

スクリプト内でarg1の値を変更する方法はありますか?何か、こんな感じ。

$1="chintz"

どのように解決するのですか?

すべての引数をリセットする必要があります。例えば $3 :

$ set -- "${@:1:2}" "new" "${@:4}"

基本的にあなたは を設定します。 全て の引数を、変更したい引数以外の現在の値に設定します。 set -- も指定されます。 で、POSIX 7 .

"${@:1:2}" 表記 は 2 つに展開されます(そのため 2 である)位置引数に展開されます。 1 (すなわち $1 ). の省略形である。 "$1" "$2" の省略形ですが、例えば次のように置き換えるときにはもっと便利です。 "${17}" .