|
echo命令行 承接上一章所介紹的command line ,這里我們用echo這個命令加以進(jìn)一步說明。
標(biāo)準(zhǔn)的command line包含三個部件:
*command-name options argument
echo是一個非常簡單、直接的linux命令:
*將argument送出至標(biāo)準(zhǔn)輸出(STDOUT),通常就是在顯示器(monitor)上輸出。
為了更好的理解,不如先讓我們跑一下 echo 命令好了:
$ echo
$ 你會發(fā)現(xiàn)只有一個空白行,然后又回到 shell prompt 上了。這是因為 echo 在預(yù)設(shè)上,在顯示完argument之后,還會送出一個換行符號(new-line charactor)。上面的命令沒有任何的argument,結(jié)果就只剩下一個換行符號了。若要取消這個換行符號,可以利用echo的 -n option $ echo -n
$ 不妨讓我們回到 command line 的概念上來討論上例的 echo 命令好了:
command line 只有 command-name(echo)以及option(-n),并沒有任何argument。要想看看 echo的argument ,那還不簡單!接下來,可以試試如下的輸入:
$ echo first line first line $ echo -n first line first line $ 在上兩個 echo 命令中,你會發(fā)現(xiàn) argument 的部分顯示在你的屏幕,而換行符號則視 -n option的有無而別。很明顯的,第二個echo由于換行符號被取消了,接下來的shell prompt就接在輸出結(jié)果同一行了。
事實上,echo除了 -n options 之外,常用選項還有:
-e:啟用反斜線控制字符的轉(zhuǎn)換
-E:關(guān)閉反斜線控制字符的轉(zhuǎn)換(預(yù)設(shè)如此)
-n:取消行末之換行符號(與 -e 選項下的 \c 字符同意)
關(guān)於 echo 命令所支援的反斜線控制字符如下表:
\a:ALERT / BELL (從系統(tǒng)喇叭發(fā)送出聲音) \b:BACKSPACE ,也就是向左刪除 \c:取消行末的行換符號 \E:ESCAPE,逃離鍵
\f:FORMFEED,換頁字符 \n:NEWLINE,換行字符 \r:RETURN,回車鍵 \t:TAB,表格跳位鍵 \v:VERTICAL TAB,垂直表格跳位鍵 \n:ASCII 八進(jìn)制編碼(以 x 為十六進(jìn)制) \\:反斜線本身 或許,我們可以透過實例來了解 echo 的選項及控制字符:
例一: $ echo -e "a\tb\tc\nd\te\tf" a b c d e f 上例運用 \t 來區(qū)隔 abc 還有 def ,以及用 \n 將 def 換至下一行。
例二: $ echo -e "\141\011\142\011\143\012\144\011\145\011\146" a b c d e f 與例一的結(jié)果一樣,只是使用了八進(jìn)制編碼來表示。 例三: $ echo -e "\x61\x09\x62\x09\x63\x0a\x64\x09\x65\x09\x66" a b c d e f 與例二差不多,只是換用了十六進(jìn)制編碼。
例四: $ echo -ne "a\tb\tc\nd\te\bf\a" a b c d f $ 因為 e 字母后面是刪除鍵(\b),因此輸入結(jié)果就沒有e了。
在結(jié)束時聽到一聲鈴響,那是\a的杰作! 由于同時使用了 -n 選項,因此 shell prompt 緊接在第二行之后。 若不用 -n 的話,那在\a后再加個\c,也是同樣的效果。
事實上,在日后的 shell 操作及 shell script 設(shè)計上,echo 命令是最常用的命令之一。
比方說,用 echo 來檢查變量值: $ A=B
$ echo $A B $ echo $? 0 |
|
|