Linux中有很多特殊符号。
比如
[bourne@localhost ~]$ echo 2 * 3 >5
[bourne@localhost ~]$ ls
5 Desktop Documents Downloads Music Pictures Public Templates Videos
[bourne@localhost ~]$ cat 5
2 Desktop Documents Downloads Music Pictures Public Templates Videos 3
[bourne@localhost ~]$
‘>’ 大于号是输出重定向符号,含义是大于号前边的输出当做大于号后边命令的输入
5 的含义就是把 2 * 3的输出重定向到 5 中,这里的5并不是代表一个数字,而是一个文件名,如果当前目录不存在名为5这个文件,则先创建,后输出内容到文件中。
‘*’星号则表示输出当前文件夹中所有的文件。
所以 2 * 3 > 5,则是输出当前目录中所有的文件到名为5这个文件中,如果5这个文件不存在,则创建先。*号前后的 2 和 3,则原封不动的打印出来。
Linux中所有的特殊字符,请参考
https://linux.cn/article-5657-1.html
有时候我们不想让Linux解析这些特殊字符。那么我们可以使用
单引号 ”,双引号 “”和反斜杠 \。
比如
[bourne@localhost ~]$ echo '2 * 3>5'
2 * 3>5
[bourne@localhost ~]$
或者
[bourne@localhost ~]$ echo 2 \* 3 \> 5
2 * 3 > 5
[bourne@localhost ~]$
a=bcdef
双引号和单引号的区别如下。
echo "$a" #双引号将进行变量扩展 ,输出bcdef
echo '$a' #单引号直接输出 $a