天天看點

Shell中的反引号、單引号與雙引号的用法(` /''/"")

反引号位 (`) 位于鍵盤的Tab鍵的上方、1鍵的左方。注意與單引号(‘)位于Enter鍵的左方的差別。

1 反引号

在Linux的指令行中起着指令替換的作用。指令替換是指shell能夠将一個指令的标準輸出插在一個指令行中任何位置。(在shell腳本中用非常多)

  如下,shell會執行反引号中的date指令,把結果插入到echo指令顯示的内容中。

[root@Lanyeye ~]# date
Sat Jun  :: CST 
[root@Lanyeye ~]# echo date
date
[root@Lanyeye ~]# echo 今天日期:date
今天日期:date
[root@Lanyeye ~]# echo 今天日期:`date`
今天日期:Sat Jun  :: CST 
           

正常情況下,echo date 指令将date當做一個字元串處理了,我們想的是讓echo輸出date指令的執行結果,這時候反引号的作用就展現出來。就是将一個指令的輸出插入到另一個指令行或是腳本中的指令行。 

 

2單引号與雙引号 

單引号、雙引号用于使用者把帶有空格的字元串指派給變量事的分界符。作用差不多,但是有差別,我在用的時候就敲一個例子去了解,不用刻意的去記憶。 如:echo “ PWD”和echo′ PWD’ 結果不一樣。。。

for example:

[root@Lanyeye ~]# name=chen min  
-bash: min: command not found
[root@Lanyeye ~]# 
[root@Lanyeye ~]# name='chen min  
[root@Lanyeye ~]# name='chen min'  
[root@Lanyeye ~]# echo $name 
chen min
[root@Lanyeye ~]# 
[root@Lanyeye ~]# name2=chen min2
-bash: min: command not found
[root@Lanyeye ~]# 
[root@Lanyeye ~]# name2="chen min2"
[root@Lanyeye ~]# echo $name2
chen min
[root@Lanyeye ~]# 
           

如果沒有單引号,shell會把空格後的字元串解釋為指令。

單引号告訴shell忽略所有特殊字元,單引号中是啥内容就是啥。

雙引号中的特殊字元還是有它獨特的作用的。

[root@Lanyeye ~]# echo "$PWD"
/root
[root@Lanyeye ~]# echo '$PWD'
$PWD
[root@Lanyeye ~]#