linux shell單引號、雙引號及無引號區別 【轉】
3.描述linux shell中單引號、雙引號及不加引號的簡單區別(記時2分鐘)
簡要總結:
單引號:
可以說是所見即所得:即將單引號內的內容原樣輸出,或者描述為單引號裡面看到的是什麼就會輸出什麼。
雙引號:
把雙引號內的內容輸出出來;如果內容中有命令、變數等,會先把變數、命令解析出結果,然後在輸出最終內容來。
不加引號:
不會將含有空格的字串視為一個整體輸出, 如果內容中有命令、變數等,會先把變數、命令解析出結果,然後在輸出最終內容來,如果字串中帶有空格等特殊字元,則不能完整的輸出,需要改加雙引號,一般連續的字串,數字,路徑等可以用。
例項演示:
例1:
[[email protected]
#→單引號時看到啥就顯示啥
`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]
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-data、x-www-form-urlencoded、raw、binary的區別【轉】
size raw oct OS 分隔符 cte https url 二進制 鏈接:https://blog.csdn.net/wangjun5159/article/details/47781443 1、form-data:
arm交叉編譯器gnueabi、none-eabi、arm-eabi、gnueabihf等的區別【轉】
window with 都是 linu .cn target nbsp htm c庫 轉自:https://www.cnblogs.com/deng-tao/p/6432578.html 博客來之於: http://www.veryarm.com/296.html
make clean、make mrproper、make 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,
一張圖看懂開源許可協議,開源許可證GPL、BSD、MIT、Mozilla、Apache和LGPL的區別【轉】
轉自:https://blog.csdn.net/testcs_dn/article/details/38496107 開源許可證GPL、BSD、MIT、Mozilla、Apache和LGPL的區別 首先借用有心人士的一張相當直觀清晰的圖來劃分各種協議:開源許可證GPL、BSD、MIT、Mozilla、A