linux – 在bash中设置wget –header =不起作用

前端之家收集整理的这篇文章主要介绍了linux – 在bash中设置wget –header =不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在wget中设置标题.当我在终端中运行以下命令时,它工作wget -d –header =“用户代理:Mozilla / 5.0( Windows NT 6.0)AppleWebKit / 537.11(KHTML,如Gecko)Chrome / 23.0.1271.97 Safari / 537.11”’http ://website.com -O index

但是,一旦我在变量中添加相同的内容并尝试运行bash脚本,它就无法正常工作.

我试过的

header='-d --header="User-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.11 (KHTML,like Gecko) Chrome/23.0.1271.97 Safari/537.11"'
wget "$header" http://google.com -O index

错误

wget: invalid option -- ' '
wget: invalid option -- '-'
wget: invalid option -- '-'
Usage: wget [OPTION]... [URL]...

解决方法

使用变量时必须使用双引号.否则它将扩展为多个单词.另一方面,不需要引用变量值两次.以下应该有效:
header='--header=User-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.11 (KHTML,like Gecko) Chrome/23.0.1271.97 Safari/537.11'
wget "$header" http://website.com -O index

编辑:如果要为多个参数使用变量,请使用数组:

args=(-d '--header=User-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.11 (KHTML,like Gecko) Chrome/23.0.1271.97 Safari/537.11')
wget "${args[@]}" http://website.com -O index

猜你在找的Linux相关文章