資源描述:
《《linux與unixshell編程指南》005》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在行業(yè)資料-天天文庫。
1、下載第5章shell輸入與輸出在shell腳本中,可以用幾種不同的方式讀入數(shù)據(jù):可以使用標準輸入—缺省為鍵盤,或者指定一個文件作為輸入。對于輸出也是一樣:如果不指定某個文件作為輸出,標準輸出總是和終端屏幕相關聯(lián)。如果所使用命令出現(xiàn)了什么錯誤,它也會缺省輸出到屏幕上,如果不想把這些信息輸出到屏幕上,也可以把這些信息指定到一個文件中。大多數(shù)使用標準輸入的命令都指定一個文件作為標準輸入。如果能夠從一個文件中讀取數(shù)據(jù),何必要費時費力地從鍵盤輸入呢?本章我們將討論以下內(nèi)容:?使用標準輸入、標準輸出及標準錯誤。?重定向標準輸入和
2、標準輸出。本章全面討論了shell對數(shù)據(jù)和信息的標準輸入、標準輸出,對重定向也做了一定的介紹。5.1echo使用echo命令可以顯示文本行或變量,或者把字符串輸入到文件。它的一般形式為:echostringecho命令有很多功能,其中最常用的是下面幾個:c不換行。f進紙。t跳格。換行。如果希望提示符出現(xiàn)在輸出的字符串之后,可以用:其中“□”是光標。上面的命令將會有如下的顯示:如果想在輸出字符之后,讓光標移到下一行,可以用:$echo"Theredpenranoutofink"還可以用echo命令輸出轉(zhuǎn)義符以
3、及變量。在下面的例子中,你可以讓終端鈴響一聲,顯示出$HOME目錄,并且可以讓系統(tǒng)執(zhí)行tty命令(注意,該命令用鍵盤左上角的符號,法語中的抑音符引起來,不是單引號,)。如果是LINUX系統(tǒng),那么......必須使用-n選項來禁止echo命令輸出后換行:第5章shell輸入與輸出35下載$echo-n"Whatisyourname:"必須使用-e選項才能使轉(zhuǎn)義符生效:運行時會出現(xiàn)如下輸出:如果希望在echo命令輸出之后附加換行,可以使用選項:還可以在echo語句中使用跳格符,記住別忘了加反斜杠:如果是LINUX系
4、統(tǒng),那么...別忘了使用-e選項才能使轉(zhuǎn)義符生效:(續(xù))如果想把一個字符串輸出到文件中,使用重定向符號>。在下面的例子中一個字符串被重定向到一個名為myfile的文件中:$echo"Thelogfileshaveallbeendone">myfile或者可以追加到一個文件的末尾,這意味著不覆蓋原有的內(nèi)容:$echo"$LOGNAMEcarriedthemoutat`date`">>myfile初涉shell的用戶常常會遇到的一個問題就是如何把雙引號包含現(xiàn)在讓我們看一下myfile文件中的內(nèi)容:到echo命令的字符串
5、中。引號是一個特殊字符,所以必須要使用反斜杠來使shell忽略它的特殊含義。假設你希望使用echo命令輸出這樣的字符串:“/dev/rmt0”,那么我們只要在引號前面加上反斜杠即可:$echo""/dev/rmt0"""/dev/rmt0"5.2read可以使用read語句從鍵盤或文件的某一行文本中讀入信息,并將其賦給一個變量。如果只36第一部分shell下載指定了一個變量,那么read將會把所有的輸入賦給該變量,直至遇到第一個文件結(jié)束符或回車。它的一般形式為:readvarible1varible2...在
6、下面的例子中,只指定了一個變量,它將被賦予直至回車之前的所有內(nèi)容:在下面的例子中,我們給出了兩個變量,它們分別被賦予名字和姓氏。shell將用空格作為變量之間的分隔符:如果輸入文本域過長,Shell將所有的超長部分賦予最后一個變量。下面的例子,假定要讀取變量名字和姓,但這次輸入三個名字;結(jié)果如下;在上面的例子中,如果我們輸入字符串JohnLemonDoe,那么第一個單詞將被賦給第一個變量,而由于變量數(shù)少于單詞數(shù),字符串后面的部分將被全部賦給第二個變量。在編寫shell腳本的時候,如果擔心用戶會對此感到迷惑,可以采用每
7、一個read語句只給一個變量賦值的辦法:用戶在運行上面這個腳本的時候,就能夠知道哪些信息賦給了哪個變量。如果是LINUX系統(tǒng),那么......別忘了使用“-n”選項。第5章shell輸入與輸出37(續(xù))載5.3catcat是一個簡單而通用的命令,可以用它來顯示文件內(nèi)容,創(chuàng)建文件,還可以用它來顯示控制字符。在使用cat命令時要注意,它不會在文件分頁符處停下來;它會一下顯示完整個文件。如果希望每次顯示一頁,可以使用more命令或把cat命令的輸出通過管道傳遞到另外一個具有分頁功能的命令中,請看下面的例子:$catmyfi
8、le
9、more或$catmyfile
10、pgcat命令的一般形式為:cat[options]filename1...filename2...cat命令最有用的選項就是:-v顯示控制字符如果希望顯示名為myfile的文件,可以用:$catmyfile如果希望顯示myfile1、myfile2、myfile3這三個文件,可以用:$catmyfile1