2017-09-15 21 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" 
相关问题