首页 >> 学习 >> Shell脚本编程基础 >> 引号
引号

本节重要性:★★★★★    本节难度:★★★★★

Shell下有3种引号:双引号、单引号和反引号,他们的作用各不相同:

""	其中的字符除了$、反引号(`)和转义符(\)外均作为字符本身对待
''	其中的字符除转义符(\)外均作为字符本身对待
``	其中的内容在命令行中首先被Shell作为命令解释,并在命令行中以该命令的
	执行结果取代反引号部分

1. 双引号

双引号中的内容,除了$、反引号(`)和反斜杠(\)外均作为字符本身对待。其中,$表示变量引用(关于Shell变量,我们在后面还要学习),就是用变量值替换$及后面的变量名;反引号(`)表示命令引用,反引号及其中的内容用反引号中的命令的执行结果替换;反斜杠(\)表示转义,其后如果是$、"、`、\或换行符时,这些特殊符号将会被当做普通字符对待,另外\t表示制表符,\n表示换行。

[peter@ibi-genome shell]$ echo -e "Hello $LOGNAME"
Hello peter
[peter@ibi-genome shell]$ echo -e "Hello `echo Peter`"
Hello Peter
[peter@ibi-genome shell]$ echo -e "Hello \$LOGNAME"
Hello $LOGNAME
[peter@ibi-genome shell]$ echo -e "Ross is \"good at marriage\"."
Ross is "good at marriage".
[peter@ibi-genome shell]$ echo -e "Hello \`echo Peter\`"
Hello `echo Peter`
[peter@ibi-genome shell]$ echo -e "Hello \\$LOGNAME"
Hello \peter
[peter@ibi-genome shell]$ echo -e "Hello\t$LOGNAME"
Hello   peter
[peter@ibi-genome shell]$ echo -e "Hello\n$LOGNAME"
Hello
peter

上面例子中,$LOGNAME是环境变量,其值是当前登录用户的用户名。关于环境变量,我们在后面还要学习。

2. 单引号

单引号的使用要简单一些,其中的字符除转义符(\)外都被Shell作为字符本身对待:

[peter@ibi-genome shell]$ echo -e 'Hello $LOGNAME'
Hello $LOGNAME
[peter@ibi-genome shell]$ echo -e 'Hello `echo Peter`'
Hello `echo Peter`
[peter@ibi-genome shell]$ echo -e 'Hello\tPeter'
Hello   Peter
[peter@ibi-genome shell]$ echo -e 'Hello\nPeter'
Hello
Peter
[peter@ibi-genome shell]$ echo -e 'Hello\\tPeter'
Hello\tPeter

3. 反引号

反引号表示命令引用,Shell在执行命令行之前,先用反引号中的命令的执行结果替换反引号及其中的内容,我们在上面的双引号的例子中已经用过反引号,下面再给出另外一个例子:

[peter@ibi-genome shell]$ echo "The current path is: `pwd`"
The current path is: /home/peter/shell

上面的例子中,最后的输出结果中`pwd`已经被pwd命令的执行结果(当前路径)所代替。命令引用还有一种方法,即$(命令)的方式,如上面的例子也可以用下面的方式:

[peter@ibi-genome shell]$ echo "The current path is: $(pwd)"
The current path is: /home/peter/shell

<<上一节  下一节>>