linux引號問題

2021-08-30 14:46:00 字數 1757 閱讀 1390

引號

在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

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

1. 注釋符

在shell程式設計中經常要對某些正文行進行注釋,以增加程式的可讀性。在shell中以字元「#」開頭的正文行表示注釋行。

此外還有一些特殊字元如:用於輸入/輸出重定向與管道的<、>、<<、>>和|;執行後台命令的&;命令執行操作符&&和||及表示命令組的{}將在下面各小節中加以介紹。

標準輸入/輸出和重定向

Linux中引號問題

一 單雙引號 在linux中變數是乙個非常重要的知識。在變數的設定當中,單雙引號的用途是不一樣的。最大的不同是雙引號依然可以保留變數的內容,而單引號僅能是一般字元,不會有特殊符號,即不會保留變數的值。舉例 有變數name bill 此處 myname name is myname 和myname n...

linux 單引號,雙引號,反引號

目的 為了保護文字不被轉換.除了他本身.就是說除去單引號外,在單引號內的所有文字都是原樣輸出.1.root jszwl161 sp49ep9 echo she is crying help 3.root jszwl161 sp49ep9 echo 4.root jszwl161 sp49ep9 ec...

Linux 倒引號 單引號 雙引號

1 倒引號表示命令,用於命令替換,獲取命令的返回結果。echo now is date 或者 echo now is date 2 單引號 name andy 沒有問題,如果想 name andy niu,報錯 bash niu command not found,程式認為第乙個空格後是命令。如何解...