私のbashスクリプトは次のとおりです。
#!/bin/bash
set -x
./test FLAGS=${@:2}
私が実行したときに./script 1 2 3
実行されるコマンドは./test FLAGS=2 3
...私の考えではFLAGS="2 3"
。
4行目をに変更しても./test FLAGS="${@:2}"
何も変わりません。
4行目を次のように変更すると、./test FLAGS=\"{@:2}\"
私が得ることは./test 'FLAGS="2' '3"'
実際に私が望むものではありません。
変数を引用符で囲む方法は?
ベストアンサー1
使用
"${*:2}"
変える
"${@:2}"
$@
そして${x[@]}
その変形、配列の各要素は「単語」に拡張されます。引用するとき。$*
(そして${x[*]}
)すべての要素をまとめて単一の単語に拡張使用された最初の文字です$IFS
。
まったく参照されない場合は、両方のバージョンが合格します。噴射すべての文字から複数の単語分割を生成します。IFS
発生する。