我剛剛嘗試重寫我的代碼時出現此錯誤。通過變量衝突的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進行通配符擴展,通配符,分詞等。 –
不要將「已解決」添加到標題。爲了表明你的問題已經得到解答,請接受一個答案(通常你也想要贊成它)。如果現有的答案都不能解決您的問題,您可以自行發佈並接受答案。 –