bash 字符串

\ 反斜槓(轉義)

緊跟着的 \ 的字符字面量會被保留,輸出的時候去掉 \html

一個特例是 \newline (反斜槓+換行符),這個組合會被當作長字符串換行,輸出的時候將 \newline (反斜槓+換行符)移除、忽略。express

$ echo \a
a

$ echo \aaa
aaa

$ echo aaa\
> ssss
aaassss

'' 單引號

沒法使用轉義bash

$ echo 'aaa'
aaa

"" 雙引號

基本做用:保留字面量翻譯

特例:code

  1. '$':htm

    # $name 引用變量名
    $ test=asdfg
    $ echo "$test"
    asdfg
    $ echo "11${test}22"
    11asdfg22
    
    # $(command) 執行命令,將結果擴展爲字符串
    $ echo "aaaa$(ls)ssss"
    aaaa1.txt
    2.txtssss
    
    # $(( expression )) 執行算術表達式,將結果擴展爲字符串
    $ echo "aaaa$(( 3+4 ))ssss"
    aaaa7ssss
  2. '`':字符串

    # `command` 執行命令,將結果擴展爲字符串
    $ echo "aaaa`ls`ssss"
    aaaa1.txt
    2.txtssss
  3. '\':get

    # 反斜槓+普通字符
    $ echo "\a"
    \a
    
    # '$', '`', '"', '\', or 'newline'(換行)
    # 反斜槓+以上幾個特殊符號,輸出的時候反斜槓會被刪除;其中,`newline` 也會被刪除
    $ echo "\$\`\"==\
    > =="
    $`"====
    
    # 無論開啓或者關閉歷史擴展的功能,`反斜槓+!`的輸出都同 `反斜槓+普通字符` 同樣
    $ echo "\!-1"
    \!-1
  4. history expansion 開啓時,'!':string

    # 若是開啓了歷史擴展的功能
    $ echo "!-1" //打印上一條歷史命令
    echo "echo "\a""
    echo a

$'string'

字符串中,以反斜槓開頭的字符,若是符合 ANSI C 標準的轉義字符,會被轉義後擴展字符串。io

$ echo $'a\naa'
a
aa

$"string"

會基於當前語言環境對 string 進行翻譯。略。

參考

相關文章
相關標籤/搜索