有没有办法在单引号内打印变量内的值?

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.