1,608 瀏覽數

Bash Shell Script – echo

通常 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

發表迴響