本文最后更新于 5 年前,文中所描述的信息可能已发生改变。
引号
在shell中的引号有下面几个种类:
- 单引号
- 双引号
- 倒引号
在使用特殊符号表达的时候,会正常输出显示符号吗?
shell
$ echo *这个命令真的可以输出 *这个符号吗,不能,*为特殊字符,在命令中不会被正确执行,需要用 \将 *转化为普通字符后,就可以执行了。
shell
$ echo \*但是应该字符串带有很多标点符号等其他特殊字符时,需要在每一个特殊符号字符前添加 \,输入效率低,并且不利于阅读。所以引号就有效的解决了这个问题。
单引号
shell
$ echo 'hi,this is my firend.'被单引号括起来的字符都是普通字符,会被全部显示出来。
但是又因为使用某一些个别特殊的字符的时候,会无法工作,如:$来引用变量:
shell
$ echo '现在的目录为<$HOME>,用户目录为<$USER>'这个命令将不能工作,但是使用 \会让可读性变差。所以又可以使用另一个引号。
双引号
由双引号括起来的字符(除了 $、倒引号和 \外)均为普通字符。
shell
$ name=user
$ echo "现在是北京时间:`date`,欢迎用户$name"上面的命令就是使用了倒引号和一些变量来输出的字符。
倒引号
被倒引号括起来的字符为shell解释为命令行,shell会执行里面的命令,再以标准输出结果取代整个倒引号的部分,倒引号在<kbd>Tab</kbd>的上方。
shell
$ today=`date`
$ echo 时间是$today

