8
无可否认,我是一名bash初学者。我总是希望为了我的shell脚本目的达到Python。不过,我试图强迫自己学习一些bash。我很好奇为什么下面的代码不起作用。内联bash脚本变量
sh -c "F=\"123\"; echo $F"
无可否认,我是一名bash初学者。我总是希望为了我的shell脚本目的达到Python。不过,我试图强迫自己学习一些bash。我很好奇为什么下面的代码不起作用。内联bash脚本变量
sh -c "F=\"123\"; echo $F"
它不工作,因为在双引号字符串变量展开发生之前被称为命令。也就是说,如果我输入:
echo "$HOME"
外壳转变成这样:
echo "/home/lars"
前实际调用echo命令。同样,如果您键入:
sh -c "F=\"123\"; echo $F"
这被转化为:
sh -c "F=\"123\"; echo"
调用的sh
命令之前。您可以使用单引号来抑制变量扩展,例如:
sh -c 'F="123"; echo $F'
您也可以用反斜杠逃脱$
:
sh -c "F=\"123\"; echo \$F"
另外,如果你想学习'bash',花一些高质量的时间用'bash'手册页,还有[#bash faq](http://mywiki.wooledge.org/BashFAQ)。 – larsks 2012-04-01 01:06:12
另外,请注意,在单引号中,不需要反斜杠 - 引号:''F =“123”''而不是''F = \“123 \”'''。 – larsks 2012-04-01 01:07:45
谢谢!完全意义。这些小细节带来了很大的变化。 :-) – Daniel 2012-04-01 01:30:55