Shell指令碼中的特殊字元(美元符、反斜線、引號等)作用介紹_linux shell

來源:互聯網
上載者:User

Shell中的特殊字元有

1、$ 美元符
2、\ 反斜線
3、` 反引號
4、" 雙引號
5、< ,>;,*,?,[,]

下面我一一舉列說明

一、$符號

1、echo $? 顯示的是上一條指令退出狀態
2、echo "$?" 效果同上
3、echo '$?' 顯示的是$?
4、echo \$? 顯示的是$?
5、echo "\$?" 顯示的是$?

  大家可能已經看出 $符號在雙引號中具有特殊意義 雙引號對$符號不起作用
而單引號可以將特殊字元的的特殊意義屏蔽掉,使其能顯示為字元本身,反斜
杠也可以將特殊字元的特殊含義屏蔽掉,使特殊字元失去特殊含義。

二、\ 反斜線

反斜線的作用是將特殊符號字元的特殊含義屏蔽掉,使其還是原字元

複製代碼 代碼如下:

A=1234
echo \$A 顯示為$A 如果不加\將顯示為1234
echo \` 顯示為`
echo \" 顯示為雙引號
echo \\ 顯示為\

三、` 反引號

  反引號的功能是命令替換,將反引號中的字串做為命令來執行,我們在用shell編程時經常用的到 將系統命令的執行結果賦給一個變數

複製代碼 代碼如下:

A=`date`
echo $A 顯示的不是date而是當時的時間串
比如有一檔案A的內容如下 
ABCDEFG
1234456
abcdefg

B=`cat A|grep 234`? # 檢索檔案A中含有字串234的行
echo $B 將顯示為1234456
echo "$B" 將顯示為什嗎?
echo "\$B" 將顯示為什嗎?讀者自己試試

四、" 雙引號

  在系統中有些特殊字元,為避免引用這些特殊字元 往往用雙引號或單引號將這些特殊字元引起來,使其不具有特殊含義。
  但有一部分特殊字元在引號中還是具有特殊含義,用雙引號引起來是不起作用的。本文中所列的前四個特殊字元在雙引號中還是特殊字元。為了使其不具有特殊含義一是用單引號引進來二是用\反斜線使其失去作用。

  比如我們想原樣輸出這些特殊字元

複製代碼 代碼如下:

echo """
echo "$"
echo "\"
echo "`"

   以上不是你所期望的結果,因為雙引號對它們不起作用,你只能這樣才能輸出這些特殊字元的原形
複製代碼 代碼如下:

echo '"'
echo '$'
echo '\'
echo '`'

echo "\""
echo "\$"
echo "\\"
echo "\`"

將分別顯示為 " $ \ `

五、其它特殊字元

  大家注意到 除了前四個特殊字元外 我將其它的特殊字元都放在一塊,這是因為前四個特殊字元在雙引號中還是具有特殊含義,所以單獨拿出來講,除此以外的特殊字元如果你要輸出這些特殊字元的原形,你就可以用雙引號或單引號引起來使其失去特殊含義。

< ,>;,*,?,[,]對shell有特殊含義 但你可以用雙引號引起來輸入這些原形

  講了這麼多大家是不是已經注意到所有的特殊字元在單引號中失去特殊含義,如果你要輸出特殊字元原形但又記不清那些特殊字元在雙引號中不能輸出原形,建議你乾脆用單引號引起來。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.