Pan*_*dya 15 shell bash quoting variable-substitution
考虑我已经设置了变量site
并且需要通过echo
or打印printf
,但是如果我使用单引号来写一些东西并且想要使用变量那么如何?
例子:
$ site=unix.stackexchange.com
$ echo "visit:$site"
visit:unix.stackexchange.com
Run Code Online (Sandbox Code Playgroud)
但是如果我使用单引号:
$ echo 'visit:$site'
visit:$site
Run Code Online (Sandbox Code Playgroud)
然后我们知道这''
是强引用并且不会扩展变量
我试过一些东西:
$ echo 'visit:"$site"'
visit:"$site"
Run Code Online (Sandbox Code Playgroud)
但不要成功。所以,我正在寻找在使用单引号时在变量内打印值的方法。
cho*_*oba 33
不能用单引号扩展变量。但是,您可以结束单引号并开始双引号:
echo 'visit:"'"$site"'"'
Run Code Online (Sandbox Code Playgroud)
或者,您可以在双引号内反斜杠双引号:
echo "visit:\"$site\""
Run Code Online (Sandbox Code Playgroud)
cuo*_*glm 10
当您处理打印变量内容时,您应该坚持使用printf 而不是 echo:
printf 'visit:%s\n' "$site"
Run Code Online (Sandbox Code Playgroud)
将输出visit:
后跟内容$site
和换行符,而不管$site
.