shell中的引號,單引號,反引號

2021-06-18 20:59:54 字數 1589 閱讀 5629

引號

在shell中引號分為三種:單引號,雙引號和反引號。

單引號 『

由單引號括起來的字元都作為普通字元出現。特殊字元用單引號括起來以後,也會失去原有意義,而只作為普通字元解釋。例如:

$ string=』$path』

$ echo $string

$path $

可見$保持了其本身的含義,作為普通字元出現。

雙引號 「

由雙引號括起來的字元,除$、、』、和」這幾個字元仍是特殊字元並保留其特殊功能外,其餘字元仍作為普通字元對待。對於$來說,就是用其後指定的變數的值來代替這個變數和$;對於而言,是轉義字元,它告訴shell不要對其後面的那個字元進行特殊處理,只當作普通字元即可。可以想見,在雙引號中需要在前面加上的只有四個字元$,,』和」本身。而對」號,若其前面沒有加,則shell會將它同前乙個」號匹配。

例如,我們假定path的值為.:/usr/bin:/bin,輸入如下命令:

$ teststring=」$path\」$path」

$ echo $teststring

.:/usr/bin:/ bin」$path $

讀者可以自己試一下在第二個雙引號之前不加會產生什麼結果。

反引號 `

反引號(`)這個字元所對應的鍵一般位於鍵盤的左上角,不要將其同單引號(』)混淆。反引號括起來的字串被shell解釋為命令列,在執行時,shell首先執行該命令列,並以它的標準輸出結果取代整個反引號(包括兩個反引號)部分。例如:

$ pwd

/home/xyz

$ string=」current directory is `pwd`」

$ echo $string

current directour is /home/xyz $

shell執行echo命令時,首先執行`pwd`中的命令pwd,並將輸出結果/home/xyz取代`pwd`這部分,最後輸出替換後的整個結果。

利用反引號的這種功能可以進行命令置換,即把反引號括起來的執行結果賦值給指定變數。例如:

$ today=`date`

$ echo today is $today

today is mon apr 15 16:20:13 cst 1999 $

反引號還可以巢狀使用。但需注意,巢狀使用時內層的反引號必須用反斜線()將其轉義。例如:

$ abc=`echo the number of users is `who| wc-l``

$ echo $abc

the number of users is 5 $

在反引號之間的命令列中也可以使用shell的特殊字元。shell為得到``中命令的結果,它實際上要去執行``中指定的命令。執行時,命令中的特殊字元,如$,」,?等又將具有特殊含義,並且``所包含的可以是任何乙個合法的shell命令,如:

$ ls

note readme.txt notice unix.dir

$ teststring=」`echo $home ` ` ls 〔nn〕*`」

$ echo $teststring

/home/yxz note notice $

其他情況,讀者可自行試之。

#linux

shell中單引號 雙引號 反引號

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

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

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

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

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