我试图在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