通常 echo 會接參數 -e ,這是代表什麼意思
測試環境為 Ubuntu 16.04 x64
使用參數 -e 之後就可以 啟用下面幾種 反斜線 (\) 轉義的功能
echo – display a line of text
-e enable interpretation of backslash escapes.If -e is in effect, the following sequences are recognized:
有沒有 -e 的差別,沒有時直接把所有的內容顯示出來.
root@ubuntu:~# echo "Test Test1\n" Test Test1\n
root@ubuntu:~# echo -e "Test Test1\n" Test Test1
\\– 可以顯示一個反斜線 (backslash)
root@ubuntu:~# echo -e "Test\\Test1" Test\Test1
\a – 文字沒有變化,會有警示聲音 alert (BEL)
root@ubuntu:~# echo -e "TestTest1\a" TestTest1
\b – backspace (退格),顯示文字字串時會前進一格
root@ubuntu:~# echo -e "Test\bTest1" TesTest1
\c – 不進一步的輸出產生, \c 後面全部刪除,包含換行字元.
root@ubuntu:~# echo -e "Test\cTest1" Testroot@ubuntu:~#
\e – escape ,會刪除接下來的一個字元.
echo -e "Test\eTest1\eTest2" Testest1est2
\f – form feed
???
\n – 顯示新的一行 (new line)
root@ubuntu:~# echo -e "Test\nTest1" Test Test1
\r – \r (carriage return),後面的字串取代掉字串最前面的資料
root@ubuntu:~# echo -e "TestTest1\rTest2" Test2est1
\t – horizontal tab (水平標籤)
root@ubuntu:~# echo -e "Test\tTest1" Test Test1
\v – vertical tab (垂直標籤)
root@ubuntu:~# echo -e "Test\vTest1" Test Test1
\xHH – byte with hexadecimal value HH (1 to 2 digits) 使用 ASCII (American Standard Code for Information Interchange 電腦編碼) 16進制來顯示字元, ASCII 表請參考 http://ascii.cl .
下面的例子用 ASCII (Hex) 16 進制來表示顯示字元 Symbol , 31 (1) , 41 (A)
root@ubuntu:~# echo -e "\x31" 1 root@ubuntu:~# echo -e "\x41" A
\0NNN – byte with octal value NNN (1 to 3 digits) 使用 ASCII (American Standard Code for Information Interchange 電腦編碼) 8進制來顯示字元, ASCII 表請參考 http://www.asciitable.com .
下面的例子用 ASCII (Hex) 8 進制來表示顯示字元 Symbol , 061 (1) , 101 (A)
root@ubuntu:~# echo -e "\0061" 1 root@ubuntu:~# echo -e "\0101" A