linux shell中'',""和``的區別


`` :反引號,獲取執行命令的結果 

打印日期:

echo `date` --》 輸出 2017年12月 8日 星期五 11時59分48秒 CST

 

'' : 去掉 所有符號的特殊含義。

 

"" : 不去掉符號的特殊含義。

 

例如 

n=3  echo '$n' --> 輸出$n

n=3  echo '$n' -->  輸出  3

 

以下內容轉載自:https://www.cnblogs.com/Skyar/p/5914942.html

 

 

今天學習一個bash腳本,看到有一條:bin=`dirname "$0"`

(dirname filename是輸出該文件所在的目錄,$0是該bash文件的文件名,在bash中一般使用cd `dirname $0`進入該腳本所在的目錄中)

我嘗試着cat $bin

輸出是:.

然后我將反引號``去掉:bin=dirname "$0"

在運行cat $bin后報錯。

 

網上查了一些bash的單引號'',雙引號""和反引號``的區別。

單引號''和雙引號""

兩者都是解決變量中間有空格的問題。

在bash中“空格”是一種很特殊的字符,比如在bash中這樣定義str=this is String,這樣就會報錯,為了避免出錯就得使用單引號''和雙引號""。

單引號'',雙引號""的區別是單引號''剝奪了所有字符的特殊含義,單引號''內就變成了單純的字符。雙引號""則對於雙引號""內的參數替換($)和命令替換(``)是個例外。

比如說   n=3

      echo '$n'

結果就是n3

改成雙引號  echo "$n",結果就是3

 

反引號``

反引號``是命令替換,命令替換是指Shell可以先執行``中的命令,將輸出結果暫時保存,在適當的地方輸出。語法:`command`

下面的例子中,將命令執行結果保存在變量中:

復制代碼
#!/bin/bash

DATE=`date`
echo "Date is $DATE"

USERS=`who | wc -l`
echo "Logged in user are $USERS"

UP=`date ; uptime`
echo "Uptime is $UP"
復制代碼

運行結果:

Date is Thu Jul  2 03:59:57 MST 2009
Logged in user are 1
Uptime is Thu Jul  2 03:59:57 MST 2009
03:59:57 up 20 days, 14:03,  1 user,  load avg: 0.13, 0.07, 0.15

 

 

http://blog.csdn.net/fuming0210sc/article/details/78750114


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM