shell中單引號 雙引號 反引號 反斜槓的區別

2021-09-01 16:48:33 字數 2047 閱讀 9772

[url]

shell 可以識別4種不同型別的引字符號: 單引號 字元' 雙引號字元" 反斜槓字元\ 反引號字元`

[color=red][b]1. 單引號 ( '' )[/b][/color]

# grep susan phonebook

susan goldberg 403-212-4921

susan topple 212-234-2343

如果我們想查詢的是susan goldberg,不能直接使用grep susan goldberg phonebook命令,grep會把goldberg和phonebook當作需要搜尋的檔案

# grep 'susan gold' phonebook

susan goldberg 403-212-4921

當shell碰到第乙個單引號時,它忽略掉其後直到右引號的所有特殊字元

[color=red][b]2. 雙引號 ( " " )[/b][/color]

雙 引號作用與單引號類似,區別在於它沒有那麼嚴格。單引號告訴shell忽略所有特殊字元,而雙引號只要求忽略大多數,具體說,括在雙引號中的三種特殊字元 不被忽略:$,\,` ,即雙引號會解釋字串的特別意思,而單引號直接使用字串.如果使用雙引號將字串賦給變數並反饋它,實際上與直接反饋變數並無差別。如果要查詢包含空 格的字串,經常會用到雙引號。

# x=*

# echo $x

hello.sh menus.sh misc.sh phonebook tshift.sh

# echo '$x'

$x# echo "$x"

*這 個例子可以看出無引號、單引號和雙引號之間的區別。在最後一種情況中,雙引號告訴shell在引號內照樣進行變數名替換,所以shell把$x替換為*, 因為雙引號中不做檔名替換,所以就把*作為要顯示的值傳遞給echo。 對於第一種情況需要進一步說明,shell在給變數賦值時不進行檔名替換(這從第三種情況中也能看出來),各步驟發生的精確次序如下: shell掃瞄命令 行,把x的值設為星號*;

shell再次掃瞄命令列,碰到星號*,把它替換成當前目錄下的檔案清單;

shell啟動執行echo命令,把檔案清單作為引數傳遞給echo.

這個賦值的先後次序非常重要:shell先作變數替換,然後作檔名替換,最後把這行處理為引數

[color=red][b]3. 反引號(``)[/b][/color]

命令替換是指shell能夠將乙個命令的標準輸出插在乙個命令列中任何位置。shell中有兩種方法作命令替換:把shell命令用反引號或者$(...)結構括起來,其中,$(...)格式受到posix標準支援,也利於巢狀。

# echo the date and time is `date`

the date and time is 三 6月 15 06:10:35 cst 2005

# echo your current working directory is $(pwd)

your current working directory is /home/howard/script.

[color=red][b]4. 反斜槓 backslash-escaped( \ )[/b][/color]

反斜槓一般用作轉義字元,或稱逃脫字元,linux如果echo要讓轉義字元發生作用,就要使用-e選項,且轉義字元要使用雙引號

echo -e "\n"

反斜槓的另一種作用,就是當反斜槓用於一行的最後乙個字元時,shell把行尾的反斜槓作為續行,這種結構在分幾行輸入長命令時經常使用。

btw[color=red][b]$()和``的區別[/b][/color]

反引號和$()的功能是命令替換,將反引號或$()中的字串做為命令來執行,我們在用shell程式設計時經常用的到 將系統 命令的執行結果賦給乙個變數

但反引號內不能再引用反引號,而$()中可以引用反引號

# cat aa

1345

mimi bibi

# data=`cat `ls``

沒反應,我ctrl+c了

# data=$(cat `ls`)

# echo $data

13 45 mimi bibi

shell中單引號 雙引號 反引號

一 單引號和雙引號 首先,單引號和雙引號,都是為了解決中間有空格的問題。因為空格在linux中時作為乙個很典型的分隔符,比如string1 this is astring,這樣執行就會報錯。為了避免這個問題,因此就產生了單引號和雙引號。他們的區別在於,單引號將剝奪其中的所有字元的特殊含義,而雙引號中...

Shell單引號,雙引號,反引號,反斜槓

shell單引號,雙引號,反引號,反斜槓 shell可以識別4種不同型別的引字符號 單引號字元 雙引號字元 反斜槓字元 反引號字元 1.單引號 grep susan phonebook susan goldberg 403 212 4921 susan topple 212 234 2343 如果我...

shell中的單引號 雙引號 反引號

在shell中引號分為三種 單引號,雙引號和反引號。由單引號括起來的字元都作為普通字元出現。特殊字元用單引號括起來以後,也會失去原有意義,而只作為普通字元解釋。單引號用於保持引號內所有字元的字面值,即使引號內的 和回車也不例外,但是字串中不能出現單引號。注意是所有,只是單引號本身不能夠出現在其中 例...