天天看點

Linux 反引号 的作用

感謝yu000hong,原文連結:http://blog.sina.com.cn/s/blog_48a45b9501010s8x.html

特殊的指派 

shell中可以将數字或字元直接賦予變量,也可以将linux指令的執行結果賦予變量,如下:

(1) $ count=9           #将數字賦予變量count

(2) $ name="ming"  #将字元賦予變量name

(3) $ listc=`ls -la`     #将linux指令賦予listc,listc的值就是該指令的執行結果

反引号的作用

反引号的作用就是将反引号内的linux指令先執行,然後将執行結果賦予變量。盡管可以通過輸入字元或者字元串來建立變量值,也可以擷取來自于其他linux指令的值。為把linux指令的結果賦予變量,實作需要執行這個指令。如果在指令行上把linux指令放在反引号中,這個指令會首先被執行,其結果會成為指令行的一個參數。在指派時,通過把指令放在反引号中,以便于首先執行,指令的執行結果會被賦予一個變量。反引号可以被視為由要執行指令組成的表達式,其結果會被賦予變量。組成指令的字元本身不會被賦予。在下面的範例中,指令ls *.c被執行,其結果然後被賦予變量listc。ls *.c會生成具有.c擴充名的所有檔案清單。這個檔案清單随後被賦予變量listc。

$ listc=`ls *.c`  

$ echo $listc  

main.c prog.c lib.c 

反引号與單引号的差別

需要記住單引号和反引号之間的差別。單引号把linux指令視為字元集合。反引号會強迫執行linux指令。有時候,當希望使用反引号時,會誤用單引号。在下面的範例中,如要給lscc變量指派,需要給指令ls *.c應用單引号,而不是反引号。在這種情況下,ls *.c僅僅是被賦予變量lscc的字元集合。在第二個範例中,反引号被應用于ls *.c指令,會強迫這個指令。擴充名.c的檔案名清單會生成,并賦予變量lscc。

$ lscc='ls *.c' 

$ echo $lscc  

ls *.c  

$ lscc=`ls *.c`  

main.c prog.c 

繼續閱讀