2017年11月6日 星期一

『Bash Shell』如何使用引號 ( " ) ( ' ) Quoting Mechanisms 程式範例/完整說明

  

Bash 有三種 quoting mechanisms

1. 跳脫字元 Escape Character  ( \ )

因為有些字元有特殊意義,如果要保留字元字面上的意義,可以在字元前加上跳脫字元。

在雙引號的字串中表示 ( " ) ( ` ) ( \ )


範例:

          
#!/bin/sh

echo "\""

echo "\`"
echo "\\"

結果:


"

`
\

特例:


如果在跳脫字元後接的是換行字元 (newline),則有連接行的意思


範例:


#!/bin/sh


echo "If you want to print a long message, you can use '\\newline' \

as a line continuation"

結果:


If you want to print a long message, you can use '\newline' as a line continuation


注意:


範例中紅色的跳脫字元加上換行,連接了下面一行


2. 單引號 Single Quotes ( ' )

被兩個單引號包起來的特殊字元不會被解釋為特殊意義,所以不需要加上跳脫字元

範例:


#!/bin/sh


echo ' " ` \ '


結果:


" ` \

          
特例:

單引號無法被放在兩個單引號中間,就算用跳脫字元也一樣不行,因為跳脫字元在兩個單引號中不會被解釋為跳脫字元的意義


範例:


#!/bin/sh


echo ' \' '


結果:


./test.sh: line 3: unexpected EOF while looking for matching `''

./test.sh: line 4: syntax error: unexpected end of file

 

3. 雙引號 Double Quotes ( " )

在兩個雙引號中的特殊字元會有特殊意義,所以如果想要保留特殊字元字面的意義,
可以在前面加上跳脫字元,因為此時跳脫字元會被解釋為跳脫字元的意義

範例;


#!/bin/sh


value=100


echo "$value `date`"

echo "\` \" \\ \A \a"

結果:


100 Mon Nov  6 22:20:02 CST 2017

` " \ \A \a

注意:


如果跳脫字元後不是特殊字元,則跳脫字元會失去其特殊意義,被當作字元被印出,如範例中的 \A 與 \a

沒有留言:

張貼留言