shell中的引號

2021-06-13 20:46:05 字數 2620 閱讀 2479

單引號(' ')

單引號可以說是即見即所得,即將單引號的內容原樣輸出

由單引號括起來的字元都作為普通字元輸出

防止任何變數擴充套件,當shell碰到第乙個單引號時,它將忽略掉其後直到右引號的所有特殊字元

例如:a=hello

echo  ' $a ? * `pwd` '      # 

輸出: $a ? * `pwd`

echo  ' " `pwd` " '           # 輸出:" `pwd` "

雙引號(" ")

雙引號與單引號類似,不同在於單引號忽略所有特殊字元,雙引號只要求忽略大多數

括在雙引號中的三種特殊字元不被忽略:$  \  `,其餘字元作為普通字元對待

echo  " ' `pwd` ' "           # 輸出:' /home/ubuntu '

echo  " ' $a ' "                 # 輸出:' hello '  

與單引號的區別例項:

x=*

echo  $x                          # 輸出當前目錄下的所有檔案

echo  ' $x '                      # 輸出:$x

echo  " $x "                     # 輸出:*

反引號(` `)

1.反引號括起來的字串被shell解釋為命令列

在執行時,shell會先執行該命令列,並以它的標準輸出結果取代整個反引號部分

shell能夠將乙個命令的標準輸出插在乙個命令列中任何位置

echo today is `date`       # 輸出:today is 2023年 04月 23日 星期二 09:29:30 cst

# shell執行echo命令時,首先執行`date`的命令date,並將輸出結果取代`date`這部分

# 最後輸出替換後的整個結果

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

例如:today=`date`

echo today is $today      # 輸出:today is 2023年 04月 23日 星期二 09:29:30 cst

3.$(...)結構也可以進行命令替換

today=$(date)               # 將date命令的標準輸出結果取代$(date)這部分並賦給變數today

echo today is $today     # 輸出:today is 2023年 04月 23日 星期二 09:29:30 cst

4.$()和``的區別

反引號可以巢狀使用,但必須注意巢狀使用時內層的反引號必須用反斜線將其轉義

例如:user=`echo user is `whoami``

echo $user                    # 輸出:user iswhoami

user=`echo user is \`whoami\``

echo $user                    # 輸出:user is ubuntu

反引號內巢狀反引號時必須用反斜線將其轉義,而$()中可以直接巢狀

user=$(echo user is $(whoami))

echo $user                    # 輸出:user is ubuntu

5.$()和``的優缺點

反引號基本上可用在全部的unix shell中,其移植性比較高,但是``(反引號)與' '(單引號)容易混淆

$()相對於``比較直觀,而且可以多層巢狀,但是$()並不是每一種shell都能使用。

反斜線(\)

1.反斜線放在特殊符號前,則該特殊符號的作用消失

放在指令前,有取消別名(aliases)的作用

name=jim                      

echo $name                  # 輸出:jim

echo \$name                 # 輸出:$name

echo *                           # 輸出當前目錄下的所有檔案

echo \*                          # 輸出:*

echo \'                           # 輸出:'

echo \"                           # 輸出:"

echo \\                           # 輸出:\

2.在echo命令後如果要讓轉義字元發生作用就要使用-e選項並且使用雙引號括起來

如\a \b \e \n \r \t 等

echo \n                          # 輸出:n

echo "\n"                       # 輸出:\n

echo -e \n                      # 輸出:n

echo -e "\n"                   # 輸出:換行

3.反斜線用於一行的最後乙個字元時即反斜線後跟著乙個新行

shell會把行尾的反斜線作為續行符(回車符無效,只起換行作用)

這種結構在分幾行輸入長命令時經常使用

shell中的引號

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

shell中的引號

引號的作用 1雙引號 1 使用 可引用除字元 美元符號 反引號 反斜線 外的任意字元或字串。雙引號不會阻止 shell 對這三個字元做特殊處理 標示變數名 命令替換 反斜線轉義 舉例 name gezn echo user name name 將列印user name gezn echo the d...

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

引號 在shell中引號分為三種 單引號,雙引號和反引號。單引號 由單引號括起來的字元都作為普通字元出現。特殊字元用單引號括起來以後,也會失去原有意義,而只作為普通字元解釋。例如 string path echo string path 可見 保持了其本身的含義,作為普通字元出現。雙引號 由雙引號括...