單引號(' ')
單引號可以說是即見即所得,即將單引號的內容原樣輸出
由單引號括起來的字元都作為普通字元輸出
防止任何變數擴充套件,當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 可見 保持了其本身的含義,作為普通字元出現。雙引號 由雙引號括...