在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ 別人echo、你也echo,是問echo知多少?
別人echo、你也echo,是問echo知多少?
何為 shell?
你要 if 還是 case 呢?
""(雙引號) 與''(單引號) 差在哪?
exec 跟 source 差在哪?
$(())與$()還有${}差在哪?
() 與 {} 差在哪?
shell and Carriage 關(guān)系
for what? while 與 until 差在哪?
大于小于號差別?
[^ ] 跟[! ]差在哪? (RE: Regular Expression)
[^ ] 跟[! ]差在哪? (wildcard)
特殊符號差異
&& 與 || 差在哪?
var=value 在 export 前后的差在哪?

別人echo、你也echo,是問echo知多少?

承接上一章介紹的command line, 這里我們用echo這個(gè)命令加以進(jìn)一步說明。

溫習(xí) 標(biāo)準(zhǔn)的command line三個(gè)組成部分:command_name option argument

echo是一個(gè)非常簡單、直接的 Linux 命令:

$echo argument

echo將argument送出到標(biāo)準(zhǔn)輸出(stdout),通常是在監(jiān)視器(monitor)上輸出。

Note:

在linux系統(tǒng)中任何一個(gè)進(jìn)程默認(rèn)打開三個(gè)文件:stdin、stdout、stderr.

stdin 標(biāo)準(zhǔn)輸入

stdout 標(biāo)準(zhǔn)輸出

stderr 標(biāo)準(zhǔn)錯(cuò)誤輸出

為了更好理解,不如先讓我們先跑一下echo命令好了:

$echo

$

你會(huì)發(fā)現(xiàn)只有一個(gè)空白行,然后又回到了shell prompt上了。 這是因?yàn)?code>echo在預(yù)設(shè)上,在顯示完argument之后,還會(huì)送出以一個(gè)換行符號 (new-line charactor). 但是上面的command echo并沒有任何argument,那結(jié)果就只剩一個(gè)換行符號。 若你要取消這個(gè)換行符號, 可以利用echo-n 選項(xiàng):

$echo -n
$

不妨讓我們回到command line的概念上來討論上例的echo命令好了:

command line只有command_name(echo)及option(-n),并沒有顯示任何argument。

要想看看echoargument,那還不簡單接下來,你可以試試如下的輸入:

$echo first line
first line
$echo -n first line
first line $

以上兩個(gè)echo命令中,你會(huì)發(fā)現(xiàn)argument的部分顯示在你的屏幕, 而換行符則視 -n 選項(xiàng)的有無而別。 很明顯的,第二個(gè)echo由于換行符被取消了, 接下來的shell prompt就接在輸出結(jié)果的同一行了... ^_^。

事實(shí)上,echo除了-n 選項(xiàng)之外,常用選項(xiàng)有:

  • -e: 啟用反斜杠控制字符的轉(zhuǎn)換(參考下表)
  • -E: 關(guān)閉反斜杠控制字符的轉(zhuǎn)換(預(yù)設(shè)如此)
  • -n: 取消行末的換行符號(與-e選項(xiàng)下的\c字符同意)

關(guān)于echo命令所支持的反斜杠控制字符如下表:

轉(zhuǎn)義字符 字符的意義
\a ALERT / BELL(從系統(tǒng)的喇叭送出鈴聲)
\b BACKSPACE, 也就是向左退格鍵
\c 取消行末之換行符號
\E ESCAPE, 脫字符鍵
\f FORMFEED, 換頁字符
\n NEWLINE, 換行字符
\r RETURN, 回車鍵
\t TAB, 表格跳位鍵
\v VERTICAL TAB, 垂直表格跳位鍵
\n ASCII 八進(jìn)制編碼(以x開頭的為十六進(jìn)制),此處的n為數(shù)字
\ 反斜杠本身

Note: 上述表格的資料來自 O'Reilly 出版社的Learning the Bash Shell, 2nd Ed.

或許,我們可以通過實(shí)例來了解echo的選項(xiàng)及控制字符:

例一:

$ echo -e "a\tb\tc\n\d\te\tf"
a    b  c
d   e   f
$

上例中,用 \t 來分割 abc 還有 def,及用 \n 將 def 換至下一行。

例二:

$echo -e "\141\011\142\011\143\012\144\011\145\011\146"
a   b   c
d   e   f

與例一中結(jié)果一樣,只是使用 ASCII 八進(jìn)制編碼。

例三:

$echo -e "\x61\x09\x62\x09\x63\x0a\x64\x09\x65\x09\x66"
a   b   c
d   e   f

與例二差不多,只是這次換用 ASCII 的十六進(jìn)制編碼。

例四:

$echo -ne "a\tb\tc\nd\te\bf\a"
a       b       c
d       f $ 

因?yàn)?e 字母后面是退格鍵(\b),因此輸出結(jié)果就沒有e了。 在結(jié)束的時(shí)聽到一聲鈴響,是\a的杰作。 由于同時(shí)使用了-n選項(xiàng),因此shell prompt緊接在第二行之后。 若你不用-n的話,那你在\a后再加個(gè)\c,也是同樣的效果。

事實(shí)上,在日后的shell操作及shell script設(shè)計(jì)上, echo命令是最常被使用的命令之一。 比方說,使用echo來檢查變量值:

$ A=B
$ echo $A
B
$ echo $?
0

Note: 關(guān)于變量的概念,我們留到以下的兩章跟大家說明。

好了,更多的關(guān)于command line的格式, 以及echo命令的選項(xiàng), 請您自行多加練習(xí)、運(yùn)用了...