考虑我已经设置了变量site
并且需要由echo
or打印printf
,但是如果我使用单引号来写一些东西并且想要使用变量那么怎么办?
例子:
$ site=unix.stackexchange.com
$ echo "visit:$site"
visit:unix.stackexchange.com
但如果我使用单引号:
$ echo 'visit:$site'
visit:$site
那么我们知道这''
是强引用并且不会扩展变量
我尝试过一些事情:
$ echo 'visit:"$site"'
visit:"$site"
但没有成功。所以,我正在寻找使用单引号打印变量内部值的方法。
答案1
您不能在单引号中扩展变量。不过,您可以结束单引号并开始双引号:
echo 'visit:"'"$site"'"'
或者,您可以在双引号内反斜杠双引号:
echo "visit:\"$site\""
答案2
当您处理打印可变内容时,您应该坚持printf 代替 echo:
printf 'visit:%s\n' "$site"
无论 中的字符如何,都会输出visit:
后跟 的内容$site
和换行符$site
。
答案3
答案4
当连接字符串和变量时,变量必须位于引号之外,因为引号之间的任何内容都将按字面打印。
echo 'visit:'$site
如果您想在变量后继续字符串,您可以执行相同的操作:
echo 'visit: '$site' rest of the sentence'