2017-09-15 25 views
1

在編寫調用wget一個劇本,我想利用保存所有的頭一個可變的,但如果我嘗試以下內容,然後標題字符串中的空白打破他們分成多個參數(不是一個單一的頭):使用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 

我不能在引號包裹$HEADERS,因爲我需要它被解釋爲2個參數,而不是1(和如果我有在變量很多頭,那就需要拆分成更參數。)

我經常寫組裝參數爲其他程序的bash腳本,我經常遇到這樣的問題。 bash中有解決方案嗎?

回答

1

不要使用常規的變量;使用數組。

headers=(--header "Accept-Encoding: gzip, deflate") 
wget "${headers[@]}" "$URL" 
相關問題