Pan*_*dya 15 shell bash quoting variable-substitution
考虑我已经设置了变量site并且需要通过echoor打印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.