以下是空腳本替換爲單引號的腳本。如果變量不爲空,那麼我們有正確的替代。bash空變量命令替換導致單引號
$ set -x; aa=""; bb=`curl "$aa" -vvv`; set +x
+ aa=
++ curl '' -vvv
的事情要注意的是在地方空變量的單引號。
當變量不是空的,一切工作正常,如:
$ set -x; aa="google.com"; bb=`curl "$aa" -vvv`; set +x
+ aa=google.com
++ curl google.com -vvv
Q1:爲什麼是空的變量或導致單引號空間中的變量引入? Q2:如何防止單引號代替空變量?
現在,我可以刪除雙引號,一切正常,但我需要保留空格,如果有的話。
謝謝。
謝謝。爲什麼curl會用一個實際的論證來解釋一個空的論證或空間?它不應該忽略它嗎?這是一個捲曲問題還是shell問題? – Khanna111
如果您將空字符串作爲參數傳遞,那麼這就是傳遞的參數。爲什麼要捲曲忽略它?這既不是殼問題,也不是捲毛問題;這是一個使用錯誤。您正在傳遞curl一個空參數,並且curl(IMO正確)不會以特殊方式處理該參數,但會嘗試將空字符串用作url。 –