Shell腳本中的特殊字符(美元符、反斜杠、引號(hào)等)作用介紹
Shell中的特殊字符有
1、$ 美元符
2、\ 反斜杠
3、` 反引號(hào)
4、" 雙引號(hào)
5、< ,>;,*,?,[,]
下面我一一舉列說(shuō)明
一、$符號(hào)
1、echo $? 顯示的是上一條指令退出狀態(tài)
2、echo "$?" 效果同上
3、echo '$?' 顯示的是$?
4、echo \$? 顯示的是$?
5、echo "\$?" 顯示的是$?
大家可能已經(jīng)看出 $符號(hào)在雙引號(hào)中具有特殊意義 雙引號(hào)對(duì)$符號(hào)不起作用
而單引號(hào)可以將特殊字符的的特殊意義屏蔽掉,使其能顯示為字符本身,反斜
杠也可以將特殊字符的特殊含義屏蔽掉,使特殊字符失去特殊含義。
二、\ 反斜杠
反斜杠的作用是將特殊符號(hào)字符的特殊含義屏蔽掉,使其還是原字符
A=1234
echo \$A 顯示為$A 如果不加\將顯示為1234
echo \` 顯示為`
echo \" 顯示為雙引號(hào)
echo \\ 顯示為\
三、` 反引號(hào)
反引號(hào)的功能是命令替換,將反引號(hào)中的字符串做為命令來(lái)執(zhí)行,我們?cè)谟胹hell編程時(shí)經(jīng)常用的到 將系統(tǒng)命令的執(zhí)行結(jié)果賦給一個(gè)變量
A=`date`
echo $A 顯示的不是date而是當(dāng)時(shí)的時(shí)間串
比如有一文件A的內(nèi)容如下
ABCDEFG
1234456
abcdefg
B=`cat A|grep 234`? # 檢索文件A中含有字符串234的行
echo $B 將顯示為1234456
echo "$B" 將顯示為什么?
echo "\$B" 將顯示為什么?讀者自己試試
四、" 雙引號(hào)
在系統(tǒng)中有些特殊字符,為避免引用這些特殊字符 往往用雙引號(hào)或單引號(hào)將這些特殊字符引起來(lái),使其不具有特殊含義。
但有一部分特殊字符在引號(hào)中還是具有特殊含義,用雙引號(hào)引起來(lái)是不起作用的。本文中所列的前四個(gè)特殊字符在雙引號(hào)中還是特殊字符。為了使其不具有特殊含義一是用單引號(hào)引進(jìn)來(lái)二是用\反斜線使其失去作用。
比如我們想原樣輸出這些特殊字符
echo """
echo "$"
echo "\"
echo "`"
以上不是你所期望的結(jié)果,因?yàn)殡p引號(hào)對(duì)它們不起作用,你只能這樣才能輸出這些特殊字符的原形
echo '"'
echo '$'
echo '\'
echo '`'
或
echo "\""
echo "\$"
echo "\\"
echo "\`"
將分別顯示為 " $ \ `
五、其它特殊字符
大家注意到 除了前四個(gè)特殊字符外 我將其它的特殊字符都放在一塊,這是因?yàn)榍八膫€(gè)特殊字符在雙引號(hào)中還是具有特殊含義,所以單獨(dú)拿出來(lái)講,除此以外的特殊字符如果你要輸出這些特殊字符的原形,你就可以用雙引號(hào)或單引號(hào)引起來(lái)使其失去特殊含義。
< ,>;,*,?,[,]對(duì)shell有特殊含義 但你可以用雙引號(hào)引起來(lái)輸入這些原形
講了這么多大家是不是已經(jīng)注意到所有的特殊字符在單引號(hào)中失去特殊含義,如果你要輸出特殊字符原形但又記不清那些特殊字符在雙引號(hào)中不能輸出原形,建議你干脆用單引號(hào)引起來(lái)。
相關(guān)文章
Linux下shell通用腳本啟動(dòng)jar(微服務(wù))
這篇文章主要介紹了Linux下shell通用腳本啟動(dòng)jar(微服務(wù))的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10Linux系統(tǒng)中bash shell編程的10個(gè)基礎(chǔ)問(wèn)題講解
這篇文章主要介紹了Linux系統(tǒng)中bash shell編程的10個(gè)基礎(chǔ)問(wèn)題講解,這10個(gè)問(wèn)題涵蓋了很多Linux shell編程的基本知識(shí)點(diǎn)及bash shell的特性,非常推薦!需要的朋友可以參考下2016-02-02Linux用戶在第一次登錄時(shí)強(qiáng)制更改初始密碼
在多用戶Linux環(huán)境下,創(chuàng)建使用某個(gè)隨機(jī)默認(rèn)密碼的用戶帳戶是標(biāo)準(zhǔn)做法。之后在成功登錄后,新用戶可以將默認(rèn)密碼更改成自己的密碼。出于安全方面的原因,常常建議“迫使”用戶在第一次登錄后更改默認(rèn)密碼,以確保最初的一次性密碼不再使用,需要的朋友可以參考下2015-10-10script_tool_for_linux.bash: Linux 環(huán)境下的 hosts 一鍵部署腳本
這篇文章主要介紹了script_tool_for_linux.bash: Linux 環(huán)境下的 hosts 一鍵部署腳本,需要的朋友可以參考下2016-04-04Linux命令ifconfig報(bào)錯(cuò)command not found的解決方法
最近在安裝Vmware CentOS,輸入ifconfig查看VM的IP地址,提示command not found,發(fā)現(xiàn)沒(méi)安裝命令包,此篇文章記錄整個(gè)問(wèn)題解決方法,有和小編遇到一樣的問(wèn)題的小伙伴可以參考閱讀本文2023-08-08實(shí)現(xiàn)釋放CentOS系統(tǒng)內(nèi)存的Shell腳本分享
這篇文章主要介紹了實(shí)現(xiàn)釋放CentOS系統(tǒng)內(nèi)存的Shell腳本分享,本文對(duì)一些小內(nèi)存的VPS特別有用,需要的朋友可以參考下2014-12-12