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