我刚开始学习Bash,所以我为下面的问题道歉,这些问题看上去可能过于简单。
我很难理解Shell脚本中引号的用法。
如果我要写
a="file"
b="`grep " a" "$a"`"
echo $bgrep " a" "$a"”中?或者,从左到右阅读?因为我被教导用双引号把变量括起来。更让人困惑的是,我的老师告诉我,为了防止系统误解变量名和后面的文本,我们应该在变量名的周围加上另一个双引号。发布于 2020-10-27 15:16:00
普通引号不嵌套,但反引号在双引号中是特殊的。
使用$()而不是反引号更容易读和更干净。它们都是指命令替换,即它们扩展到它们所包含的命令的输出。
b="$(grep " a" "$a")"但是,您不需要在赋值中使用外部双引号,因此以下内容是等效的:
b=$(grep " a" "$a")您的问题已经改变了,所以让我们添加一些更多的细节:您应该在任何地方使用双引号来防止分词。变量名称的问题最好在
echo "$var1_$var2" # two variables, $var1_ and $var2
echo "$var1"_"$var2" # two variables, $var1 and $var2, separated by an underscore
# also possible:
echo "${var1}_$var2"https://unix.stackexchange.com/questions/616649
复制相似问题