偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

終于知道 Shell 中單引號(hào)雙引號(hào)的區(qū)別了

系統(tǒng) Linux
在編寫 shell 腳本或輸入命令時(shí),你可能已經(jīng)注意到大多數(shù)命令都可以使用單引號(hào) 或雙引號(hào), 這不僅適用于 shell 腳本,而且適用于所有 Bash 命令, 但是兩種類型的引號(hào)以及 Bash shell 解釋它的方式之間存在一定的差異,下面將介紹它們之間的不同。

[[428808]]

本文轉(zhuǎn)載自微信公眾號(hào)「Linux開發(fā)那些事兒」,作者LinuxThings 。轉(zhuǎn)載本文請(qǐng)聯(lián)系Linux開發(fā)那些事兒公眾號(hào)。

在編寫 shell 腳本或輸入命令時(shí),你可能已經(jīng)注意到大多數(shù)命令都可以使用單引號(hào) 或雙引號(hào), 這不僅適用于 shell 腳本,而且適用于所有 Bash 命令, 但是兩種類型的引號(hào)以及 Bash shell 解釋它的方式之間存在一定的差異,下面將介紹它們之間的不同

單引號(hào)

用單引號(hào) ' ' 括起來(lái)的字符會(huì)保留引號(hào)內(nèi)每個(gè)字符的字面值

簡(jiǎn)而言之,shell 將逐字解釋單引號(hào)內(nèi)的封閉文本,并且不會(huì)插入任何內(nèi)容,包括變量、反引號(hào)、某些 \ 轉(zhuǎn)義符等

單引號(hào)中的任何字符都沒(méi)有特殊含義, 當(dāng)你不想使用轉(zhuǎn)義字符來(lái)更改 shell 腳本解釋輸入字符串參數(shù)方式時(shí),就會(huì)很方便

雙引號(hào)

雙引號(hào)類似于單引號(hào),只是它允許 shell 解釋美元符號(hào) ( $ )、反引號(hào) ( ` )、反斜杠 ( \ ) 和感嘆號(hào) ( ! ), 這些字符與雙引號(hào)一起使用時(shí)具有特殊含義,并且在顯示之前對(duì)其進(jìn)行評(píng)估

雙引號(hào)可以通過(guò)在雙引號(hào)前加上反斜杠來(lái)使用其自身

實(shí)例

下面通過(guò)幾個(gè)實(shí)例來(lái)說(shuō)明 單引號(hào) 和 雙引號(hào)之間的一些區(qū)別

實(shí)例1

新建 shell 腳本 t1.sh ,內(nèi)容如下

  1. #!/bin/bash 
  2.  
  3. a=98 
  4. echo "$a" 
  5. echo '$a' 

執(zhí)行 ./t1.sh 命令,結(jié)果如下

  1. [root@localhost quotes_test]# ./t1.sh  
  2. 98 
  3. $a 

從結(jié)果可以看出,雙引號(hào)中的 $a 被解釋為變量 a 的值

但是單引號(hào)中的 $a 只是原樣輸出,單引號(hào)不會(huì)解釋其中的 $ 以及 a 字符

實(shí)例2

雙引號(hào)中的 \\n 會(huì)被轉(zhuǎn)義成換行符\n,但在單引號(hào)內(nèi),\n 被當(dāng)成普通字符與同一行的其他字符一起顯示

實(shí)例3

新建 shell 腳本 t2.sh, 內(nèi)容如下

  1. #!/bin/bash 
  2.  
  3. ary[0]=8 
  4. echo "${ary[0]}" 
  5. echo '${ary[0]}' 

執(zhí)行腳本,結(jié)果如下

  1. [root@localhost quotes_test]# ./t2.sh  
  2. ${ary[0]} 

從結(jié)果可以看出,當(dāng) ${ary[0]} 用雙引號(hào)括起來(lái)時(shí),表示數(shù)組的第一個(gè)元素,所以輸出 8

但是,被單引號(hào)括起來(lái)時(shí),被當(dāng)做單純的字符輸出,并不會(huì)解釋為數(shù)組的第一個(gè)元素

實(shí)例4

新建 shell 腳本 t3.sh, 內(nèi)容如下

  1. #!/bin/bash 
  2.  
  3. a=45 
  4. echo "'$a'" 
  5. echo '"$a"' 

執(zhí)行腳本,結(jié)果如下

  1. [root@localhost quotes_test]# ./t3.sh  
  2. '45' 
  3. "$a" 

由上面的結(jié)果可知,單引號(hào)在雙引號(hào)內(nèi)沒(méi)有特殊的含義,因此,即使 $a 在單引號(hào)內(nèi),也還是會(huì)解釋成 45

但是,當(dāng)雙引號(hào)在單引號(hào)內(nèi)時(shí),即使 $a 位于雙引號(hào)內(nèi),也不會(huì)對(duì)變量 a 求值, 還是按照普通字符輸出

實(shí)例5

新建 shell 腳本 t4.sh, 內(nèi)容如下

  1. #!/bin/bash 
  2.  
  3. a=" $(printf hello) "  # 相當(dāng)于 " `printf hello` " 
  4. b=' $(printf hello) '  # 相當(dāng)于 ' `printf hello` ' 
  5. echo $a 
  6. echo $b 

執(zhí)行腳本,結(jié)果如下

  1. [root@localhost quotes_test]# ./t4.sh  
  2. hello 
  3. $(printf hello) 

從結(jié)果可以知道,雙引號(hào)中的 $(printf hello) 會(huì)被解釋成 printf hello 命令,執(zhí)行 echo $a 命令相當(dāng)于執(zhí)行了 printf hello , 結(jié)果輸出 hello

單引號(hào)中的 $(printf hello) ,只是表示普通字符而已,所以 echo $b 命令的結(jié)果是 $(printf hello) 字符的原樣輸出

小結(jié)

本文介紹了 shell 中單引號(hào)和雙引號(hào)的區(qū)別,主要是通過(guò)實(shí)例的方式來(lái)展示他們之間的不同點(diǎn),熟悉了它們的不同點(diǎn)后,在編寫 shell 腳本過(guò)程中,就不會(huì)在單雙引號(hào)上出錯(cuò)了

 

責(zé)任編輯:武曉燕 來(lái)源: Linux開發(fā)那些事兒
相關(guān)推薦

2022-11-14 14:51:23

單引號(hào)雙引號(hào)Linux

2011-05-19 13:45:15

PHP單引號(hào)雙引號(hào)

2010-07-13 11:25:42

Perl雙引號(hào)

2022-05-19 23:40:34

SQL語(yǔ)句引號(hào)

2022-03-23 14:04:32

SQL字符串數(shù)據(jù)類型

2019-08-23 09:17:11

Python腳本語(yǔ)言字符串

2011-05-19 14:00:51

PHP單引號(hào)雙引號(hào)

2010-07-02 10:33:18

SQL Server單

2009-12-25 15:59:25

shell編程

2011-03-07 15:49:13

2015-04-16 10:15:45

PHPPHP執(zhí)行效率PHP技巧

2015-09-21 11:45:10

PHP編程效率要點(diǎn)

2009-08-17 16:59:47

C#轉(zhuǎn)義字符雙引號(hào)

2021-02-24 09:43:36

MySQL數(shù)據(jù)庫(kù)雙引號(hào)

2021-06-07 17:51:27

反斜杠引號(hào)Python

2024-11-11 11:51:07

2009-08-17 14:49:34

C#正則表達(dá)式雙引號(hào)

2018-11-22 15:50:27

MySQL數(shù)據(jù)庫(kù)雙引號(hào)

2012-07-19 15:30:00

Linux

2017-05-22 08:35:07

MySQL雙引號(hào)錯(cuò)位
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)