下面的所有環(huán)境都在在REDHAT LINUX9下試驗的 在LINUX中,要使轉(zhuǎn)義符生效,需加參數(shù)-e 從echo的變量開始說起 如:e c h o命令輸出轉(zhuǎn)義符以及變量。 # echo -e "\007your home is $HOME , you are connected on `tty`" your home is /root , you are connected on /dev/pts/1 # echo -e "\ayour home is $HOME , you are connected on `tty`" your home is /root , you are connected on /dev/pts/1 # 本例中 在e c h o命令輸出之后附加換行,可以使用\ n選項: \007或\a你可以讓終端鈴響一聲 顯示出$ H O M E目錄, 并且可以讓系統(tǒng)執(zhí)行t t y命令(注意,該命令用鍵盤左上角的符號,法語中的抑音符引起來,不是單引號 )。 $ cat echod 編輯一個新echod,如上內(nèi)容,然后運行輸出如下:#!/bin/sh echo -e "this echo's 3 new lines\n\n\n" echo "OK" $ ./echod 在e c h o語句中使用跳格符,記住別忘了加反斜杠\: this echo's 3 new lines OK $ $ echo -e "here is a tab\there are two tabs\t\tok" 把一個字符串輸出到文件中,使用重定向符號>。here is a tab here are two tabs ok $ 在下面的例子中一個字符串被重定向到一個名為m y f i l e的文件中: $ echo "The log files have all been done"> myfile 或者可以追加到一個文件的末尾,這意味著不覆蓋原有的內(nèi)容: $ echo "$LOGNAME carried them out at `date`">>myfile 現(xiàn)在讓我們看一下m y f i l e文件中的內(nèi)容: The log files have all been done 引號是一個特殊字符,所以必須要使用反斜杠\來使s h e l l忽略它的特殊含義。 sam carried them out at 六 11月 13 12:54:32 CST 2004 假設(shè)你希望使用e c h o命令輸出這樣的字符串:“/ d e v / r m t 0”,那么我們只要在引號前面加上反斜杠\即可: $ echo "\"/dev/rmt0"\" "/dev/rmt0" $ |
|
|
|
|
|
exec: e x e c命令可以用來替代當(dāng)前s h e l l;換句話說,并沒有啟動子s h e l l。使用這一命令時任何現(xiàn)有環(huán)境都將會被清除,并重新啟動一個s h e l l。它的一般形式為: exec command 其中的c o m m a n d通常是一個s h e l l腳本。 我所能夠想像得出的描述e x e c命令最貼切的說法就是:當(dāng)這個腳本結(jié)束時,相應(yīng)的會話可能就結(jié)束了。e x e c命令的一個常見用法就是在用戶的. p r o f i l e最后執(zhí)行時,用它來執(zhí)行一些用于增強安全性的腳本。如果用戶的輸入無效,該 s h e l l將被關(guān)閉,然后重新回到登錄提示符。e x e c還常常被用來通過文件描述符打開文件。 e x e c在對文件描述符進(jìn)行操作的時候(也只有在這時),它不會覆蓋你當(dāng)前的s h e l l。 可以看網(wǎng)中人《shell十三問》第六節(jié): 6) exec 跟 source 差在哪? 能把十三問一次性看完最好,不過對我來說還是有些難度,今天才弄清楚第四問,看了好久才明白,目前為止,看完1,2,3,4,及11 exec: e x e c命令可以用來替代當(dāng)前s h e l l;換句話說,并沒有啟動子s h e l l。使用這一命令時任何現(xiàn)有環(huán)境都將會被清除,并重新啟動一個s h e l l。它的一般形式為: exec command 其中的c o m m a n d通常是一個s h e l l腳本。 e x e c在對文件描述符進(jìn)行操作的時候,它不會覆蓋你當(dāng)前的s h e l l。 source和exec的區(qū)別 1,我認(rèn)為他們帶的參數(shù)是不一樣的 source通常是shell腳本,而exec不但可以把一個腳本當(dāng)成參數(shù),而且還可以把一個系統(tǒng)命令當(dāng)參數(shù),例如: exec ls 2,另外一個不同就是,exec任務(wù)執(zhí)行完畢后,會執(zhí)行類似logout的操作,而source執(zhí)行完一個任務(wù)后返回當(dāng)前的shell. 3,還有,他們的用途也不是一樣的 |