我刚刚尝试重写我的代码时出现此错误。通过变量冲突的grep&wget
此代码按预期工作:
#XML downloading
wget -q http://192.168.50.154/details.xml -O details.xml
#load XML in Variable
rohxml=details.xml
#Read Data and save to Variable
health=$(grep '<Health' $rohxml | cut -f2 -d">"|cut -f1 -d"<")
但是,当我尝试将其直接保存到一个变量(因为我无法保存在新服务器的新文件),它抛出我下面的错误:
grep: invalid option -- 'O' Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information.
这是 “新” 的代码:
#load XML in Variable
ABFRAGE="'wget -q -O- http://192.168.50.154/details.xml'"
rohxml=$ABFRAGE
#Read Data and save to Variable
health=$(grep '<Health' $rohxml | cut -f2 -d">"|cut -f1 -d"<")
你知道你存放在变量wget命令行,然后执行它grep命令行而不是将命令的输出保存在变量中,对吗?不要这么做 - 这就是功能。正如你所写的,当你从某些目录等运行它时,你会暴露自己的令人讨厌的惊喜,因为你将命令暴露给shell进行通配符扩展,通配符,分词等。 –
不要将“已解决”添加到标题。为了表明你的问题已经得到解答,请接受一个答案(通常你也想要赞成它)。如果现有的答案都不能解决您的问题,您可以自行发布并接受答案。 –