以下是空脚本替换为单引号的脚本。如果变量不为空,那么我们有正确的替代。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。 –