2017-09-15 16 views
1

wgetを呼び出すスクリプトを作成する際に、すべてのヘッダーを保持する変数を使用したいが、私は2つの引数の代わりに、1として解釈されることを必要とするので、私は引用符で$HEADERSをラップすることはできませんbash文字列を使用してプログラムに複数の引数を指定します。一部の引数には空白が含まれます

HEADERS='--header "Accept-Encoding: gzip, deflate"' 
wget $HEADERS "$URL" 
# ... $HEADERS is interpreted as 4 strings instead of 2 ... 
wget --header Accept-Encoding: gzip, deflate http://example.com 

(そして:ヘッダー文字列内の空白文字は、複数のパラメータ(ではない単一のヘッダ)にそれらを破ります変数にヘッダーがたくさんある場合は、さらに引数に分割する必要があります)。

私はしばしば他のプログラムの引数をアセンブルするbashスクリプトを書いていますが、私はしばしばこの問題に遭遇します。 bashには解決策がありますか?

答えて

1

通常の変数は使用しないでください。配列を使用してください。

headers=(--header "Accept-Encoding: gzip, deflate") 
wget "${headers[@]}" "$URL" 
関連する問題