1. 程式人生 > >linux shell單引號、雙引號及無引號區別 【轉】

linux shell單引號、雙引號及無引號區別 【轉】

3.描述linux shell中單引號、雙引號及不加引號的簡單區別(記時2分鐘)

簡要總結:

單引號:

可以說是所見即所得:即將單引號內的內容原樣輸出,或者描述為單引號裡面看到的是什麼就會輸出什麼。

雙引號:

把雙引號內的內容輸出出來;如果內容中有命令、變數等,會先把變數、命令解析出結果,然後在輸出最終內容來。

不加引號:

不會將含有空格的字串視為一個整體輸出, 如果內容中有命令、變數等,會先把變數、命令解析出結果,然後在輸出最終內容來,如果字串中帶有空格等特殊字元,則不能完整的輸出,需要改加雙引號,一般連續的字串,數字,路徑等可以用。

例項演示:

例1:

[[email protected]

oldboy]# echo '`date`'

#→單引號時看到啥就顯示啥

`date`

[[email protected] oldboy]# echo "`date`"

#→雙引號時如果裡面是變數,會先把變數解析成具體內容在顯示

Sat Oct 29 18:02:59 CST 2011

[[email protected] oldboy]# echo `date`

#→對於連續的字串等內容一般不加引號也可,加雙引號一般比較保險,推薦

Sat Oct 29 18:03:08 CST 2011

例2:

[[email protected] ~]# oldboy=testchars  

#→建立一個變數  

[[email protected] ~]# echo $oldboy   #→不加引號,顯示一個變數解析後的內容       

testchars                                                                     

[[email protected] ~]# echo '$oldboy' #→單引號,顯示一個變數本身     

$oldboy                                                                   

[[email protected]

~]# echo "$oldboy" #→雙引號,顯示一個變數內容,引號內可以是變數、字串等

testchars                                                    

過濾字串測試:

[[email protected] ~]# cat >grep.log

testchars

oldboy

[[email protected] ~]# cat grep.log

testchars

oldboy

[[email protected] ~]# grep "$oldboy" grep.log

testchars

[[email protected] ~]# grep '$oldboy' grep.log

[[email protected] ~]# grep $oldboy grep.log

testchars

[[email protected] ~]$ cat >oldboy.log

\"

[[email protected] ~]$ cat oldboy.log

\"

[[email protected] ~]$  grep '\"' oldboy.log

\"

提示:有關單引號和雙引號的區別詳細內容請參考《老男孩linux運維實戰培訓-shell程式設計精講》

拓展:awk呼叫shell變數問題

[[email protected] ~]$ ett=123   

[[email protected] ~]$ awk 'BEGIN {print '$ett'}'

123

[[email protected] ~]$ awk 'BEGIN {print "$ett"}'

$ett

[[email protected] ~]$ ett='abc'

[[email protected] ~]$ awk 'BEGIN {print "$ett"}'

$ett

[[email protected] ~]$ awk 'BEGIN {print '$ett'}'

[[email protected] ~]$ awk 'BEGIN {print "'$ett'"}'

abc

詳細描述見:

老男孩linux運維實戰培訓-單引號和雙引號的區別詳細說明

老男孩linux運維實戰培訓-shell程式設計精講


相關推薦

linux shell引號引號引號區別

3.描述linux shell中單引號、雙引號及不加引號的簡單區別(記時2分鐘) 簡要總結: 單引號: 可以說是所見即所得:即將單引號內的內容原樣輸出,或者描述為單引號裡面看到的是什麼就會輸出什麼。 雙引號: 把雙引號內的內容輸出出來;如果內容中有命令、變數等,會先把變

DSDS,模,卡,待,待,通,通,概念相互關係?

DSDS:雙卡雙待 DualSimDualStandby雙模:就是手機支援2鐘模式,可以有兩種情況:          1)是該手機有兩個卡插槽,一個支援模式A(比如WCDMA),一個支援模式B(比如CDMA2000)          2)天翼國際雙模卡,該卡同時支援CDMA2000和GSM。     

shell讀取文件的每一行內容並輸出

jpg arch read line com http 內容 pan spa fin 寫法一: #!/bin/bash while read line do echo $line done < file(待讀取的文件) 寫法二:

realloc 使用詳解(分析realloc invalid pointer指針無效等錯誤)

strong 開源 堆區 找到 失敗 temp idt googl 發生 來源:http://www.cnblogs.com/ladd/archive/2012/06/30/2571420.htmlrealloc函數用來為ptr重新分配大小為size的一塊內存,看似很簡單,

Linux進程核心調度器之主調度器schedule--Linux進程的管理與調度(十九)

debug and spin block void 進程調度 2.6 standard 出錯 轉自:http://blog.csdn.net/gatieme/article/details/51872594 日期內核版本架構作者GitHubCSDN

postman中 form-datax-www-form-urlencodedrawbinary的區別

size raw oct OS 分隔符 cte https url 二進制 鏈接:https://blog.csdn.net/wangjun5159/article/details/47781443 1、form-data:

arm交叉編譯器gnueabinone-eabiarm-eabignueabihf等的區別

window with 都是 linu .cn target nbsp htm c庫 轉自:https://www.cnblogs.com/deng-tao/p/6432578.html 博客來之於: http://www.veryarm.com/296.html

make cleanmake mrpropermake distclean的區別

空間 href editor 硬盤空間 .config 問題 inux 配置文件 需要 本文轉載自:http://blog.csdn.net/liyayao/article/details/6818061 內核編譯時, 到底用make clean, make mrprope

Linux進程描述符task_struct結構體詳解--Linux進程的管理與調度(一)

mage ase 設備 兩種 等價 而且 當前 結構體 技術 Linux內核通過一個被稱為進程描述符的task_struct結構體來管理進程,這個結構體包含了一個進程所需的所有信息。它定義在include/linux/sched.h文件中。 談到task_struct結構體

Nginx安裝配置詳解

nginx概述 nginx是一款自由的、開源的、高效能的HTTP伺服器和反向代理伺服器;同時也是一個IMAP、POP3、SMTP代理伺服器;nginx可以作為一個HTTP伺服器進行網站的釋出處理,另外nginx可以作為反向代理進行負載均衡的實現。 這裡主要通過三個方面簡單介紹nginx

C++中的動態型別與動態繫結虛擬函式執行時多型的實現

(轉自:https://blog.csdn.net/iicy266/article/details/11906509) 動態型別與靜態型別 靜態型別          是指不需要考慮表示式的執行期語

成員函式的過載覆蓋與隱藏(詳細)

(轉自:https://blog.csdn.net/weixin_42205987/article/details/81569744) 成員函式的過載、覆蓋與隱藏 成員函式的過載(overload)、覆蓋/重寫(override)與隱藏/重定義(hide)很容易混淆,C++程式設計師必須要搞

Zynq-Linux移植學習筆記之27UIO機制響應外部中斷實現

轉自:https://blog.csdn.net/zhaoxinfan/article/details/80285150 版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/jj12345jj198999/article/details/802851501、&n

c++中冒號(:)和冒號(::)的用法

(轉自:https://blog.csdn.net/zimingjushi/article/details/6549390?utm_source=blogxgwz1)   1.冒號(:)用法 (1)表示機構內位域的定義(即該變數佔幾個bit空間) typedef struct _X

C++標準庫vector迭代器

(轉自:https://blog.csdn.net/zhy_cheng/article/details/8041940?utm_source=blogxgwz46) vector是同一種物件的集合,每個物件都有一個對應的整數索引值。和string物件一樣,標準庫將負責管理與儲存元素相關的類存。

編譯型語言與解釋型語言的區別各自的優缺點

編譯型語言在程式執行之前,有一個單獨的編譯過程,將程式翻譯成機器語言就不用再進行翻譯了。 解釋型語言,是在執行的時候將程式翻譯成機器語言,雖然Java程式在執行之前也有一個編譯過程,但是並不是將程式編譯成機器語言,而是將它編譯成位元組碼(可以理解為一箇中間語言)。在執行

編譯語言解釋語言與指令碼語言之間的區別

資料一: 1、解釋型語言與編譯型語言的區別翻譯時間的不同。。 編譯型語言在程式執行之前,有一個單獨的編譯過程,將程式翻譯成機器語言,以後執行這個程式的時候,就不用再進行翻譯了。 解釋型語言,是在執行的時候將程式翻譯成機器語言,所以執行速度相對於編譯型語言要慢。 C/C+

單鏈表是否有環環入口點

1.限制與要求 不允許修改連結串列結構。 時間複雜度O(n),空間複雜度O(1)。 2.思考 2.1判斷是否有環 如果連結串列有環,那麼在遍歷連結串列時則會陷入死迴圈,利用這個特徵,我們可以設計這樣的演算法。 使用一個slow指標,一個fast指標。 slow

Linux下檢視某一個程式執行所佔用的記憶體

第一種方式 top -p 程序號 [[email protected] micro-service]$ top -p 20490 top - 16:50:32 up 6 days,  2:18,  1 user,  load average: 0.00,

一張圖看懂開源許可協議,開源許可證GPLBSDMITMozillaApache和LGPL的區別

轉自:https://blog.csdn.net/testcs_dn/article/details/38496107 開源許可證GPL、BSD、MIT、Mozilla、Apache和LGPL的區別 首先借用有心人士的一張相當直觀清晰的圖來劃分各種協議:開源許可證GPL、BSD、MIT、Mozilla、A