linux操作系統(tǒng)一個(gè)shell腳本_第1頁
linux操作系統(tǒng)一個(gè)shell腳本_第2頁
linux操作系統(tǒng)一個(gè)shell腳本_第3頁
linux操作系統(tǒng)一個(gè)shell腳本_第4頁
linux操作系統(tǒng)一個(gè)shell腳本_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一個(gè)。為什么編Linuxsell靈活的工具。使用下面,一起來看看是如何工作的Linux 中有好多中不同的,但是通使用bash (bourne again )編程,因?yàn)?bash 一個(gè)。為什么編Linuxsell靈活的工具。使用下面,一起來看看是如何工作的Linux 中有好多中不同的,但是通使用bash (bourne again )編程,因?yàn)?bash 是免費(fèi)的并且很容易使用。所以在本文中筆者所提都是使用bash(同樣可以在 bash s使用任意一種文字編輯器,比如nedit、kedit、 等來編的程序用/bin/sh 來執(zhí)行程序。使od+x./filename。地在其他編程語言中您必須使用變

2、量。在 編程中,所有的變量都由字符串組成,o# 現(xiàn)在打印變量aecho $a在您的編輯器中輸入以上內(nèi)容,然后將其保存為一個(gè)文件。之后執(zhí)行。Aoo# 現(xiàn)在打印變量aecho $a在您的編輯器中輸入以上內(nèi)容,然后將其保存為一個(gè)文件。之后執(zhí)行。Aoechothisisthe這并不會(huì)打印出thisisthe2nd,而僅僅打印thisisthe,因?yàn)閟索變量numnd 的值,但是這個(gè)變量時(shí)沒有值的。可以使用花括號(hào)來告訴s打印的是 num 變量:echothisisthethisisthe要。如果您需要處理數(shù)學(xué)表達(dá)式,那么您需要使用諸如expr等程序(見下面 S命令和流中可以使用三類命令:1)Unix 命

3、令echosometext: ls: wclfilewcwfilewccfile: cpsourcefiledestfile: mvoldnamenewnamermechosometext: ls: wclfilewcwfilewccfile: cpsourcefiledestfile: mvoldnamenewnamermfile: greppatternfile: 在文件內(nèi)搜索字符串比如:grepsearchstringcutbcolnumfile: 比如:輸出每行第 5 個(gè)到第 9 個(gè)字cut -b5-9 file.txt 千萬不cat 命,令catfile.txt: 輸出文件內(nèi)容到標(biāo)準(zhǔn)

4、輸出設(shè)備(屏幕)filesomefile: readvarsortfile.txt: 對(duì)file.txtuniq: sortfile.txt|expr: 進(jìn)行算le:add2and3expr2+find: 搜索文件比如:根據(jù)文件名搜索findnamefilenametee: 將數(shù)據(jù)輸出到標(biāo)準(zhǔn)輸出設(shè)備(屏幕) | basename file: 返回不包含路徑的文件名比如:basename ux 將返dirnamefile: 返回文件所在路徑比如:dirnameuxheadfile: tailfile : sedSed是一個(gè)基本的查找替換程序??梢詮臉?biāo)準(zhǔn)輸入(比如命令管道)本,并將結(jié)果輸出到標(biāo)準(zhǔn)輸

5、出(屏幕。該命令采用正則表達(dá)式(見參考)不要和 。比如:將 linuxfocus 替換為 LinuxFocus text.file|seds/linuxfocus/LinuxFocus/awk: awk -F指定其他分割符。catsedSed是一個(gè)基本的查找替換程序??梢詮臉?biāo)準(zhǔn)輸入(比如命令管道)本,并將結(jié)果輸出到標(biāo)準(zhǔn)輸出(屏幕。該命令采用正則表達(dá)式(見參考)不要和 。比如:將 linuxfocus 替換為 LinuxFocus text.file|seds/linuxfocus/LinuxFocus/awk: awk -F指定其他分割符。catfile.txt|awkF$1$3AdamBor

6、, 2) 概念: 管道, (|) grepofile.txt|wc-在中搜索包含有o”的行并計(jì)算其行數(shù)。在這里grep命令的輸出作為wc find.-mtime-1-typef-:# Theticksarebackticks()notnormal quotes(): tar-zcvflastmod.tar.gzfind.-mtime-1-typef-pr3) if 表達(dá)式 如果條件為真則執(zhí)行then;通常用來表示條件測(cè)試。注意這里的空格很重要。要確保方括號(hào)的空格。 -f somefile :判斷是否是一個(gè)文件xbin/ls:判斷/bin/lsn$var :判斷$var$a$b :判斷$a和$b

7、執(zhí)行mantestif $S:=/bin/bash;echoyourlogins echo通常用來表示條件測(cè)試。注意這里的空格很重要。要確保方括號(hào)的空格。 -f somefile :判斷是否是一個(gè)文件xbin/ls:判斷/bin/lsn$var :判斷$var$a$b :判斷$a和$b執(zhí)行mantestif $S:=/bin/bash;echoyourlogins echoyourloginisthebash(bourneagainisnotbashbut變量包含了的名稱和/bin/bash 進(jìn)行了比較熟悉C-f/etc/shadow&echoThiscomputer uses這里 & 就是一

8、個(gè)快捷操作符,如果左邊的表達(dá)式為真則執(zhí)行右邊的語句。您也computerusesshadosswors”。同樣或操作(|)在 -r $ echo$folderechoCannotread folder;exit1;foldergrepFrom 該須也可以用 if 表達(dá)式作任何事情,但是使用與或操作符 case.)dosomethinghere; .)dosomethinghere; filelf.gz:gzipcompresseddata,deflated,originalfilename, last modified: Mon Aug 27 23:09:18 2001, os: Unix z

9、ip類型的壓縮文件: ftype=file $1 case $ftype in $1Ziparchive*)unzip$1$1:gzipcompressed*) gunzip $1 ;$1:bzip2compressed*) bunzip2 $1 ;bzip2,和*)errorFile$1cannotbe pressedwithsmartzip$1 selectbash的擴(kuò)展應(yīng)用,尤其擅長于交互式使用。用戶可以從一selectvarin.;do .now $varcanbeused echoWhatisyourfavouriteselectvarinLinuxGnuHurdFreeBSDOth

10、er;do echoYouhaveselectedWhatisyourfavouriteGnuFree#? 1Youhaveselected您也可s whiledo中使用如下#? 1Youhaveselected您也可s whiledo中使用如下的loop 表達(dá)式while-loop將運(yùn)行直到表達(dá)式測(cè)試為真。willrunwhilethettestfor istrue. 關(guān)鍵字break 用來跳出循環(huán)。而關(guān)鍵字”continue”) forvar;在下面的例子中,將分別打印ABCforvarinABC;do echovar is下面是一個(gè)更為有用showrpm,其功能是打印一些RPM包的統(tǒng)計(jì)信

11、息#listacontentsummaryofanumberofRPMpackages # USAGE: showrpm rpmfile1 rpmfile2 .#forrpmpackagein$*;if-r$rpmpackageecho=$rpmpackage= rpm -qi -p $rpmpackageechoERROR:cannotreadfile行showrpmopenssh.rpmw3m.rpm$* 包含了 3 個(gè)字符串,即openssh.rpm,w3m.rpmand把通配符(比如*).jpg 和tux.jpg這將打印出(單引號(hào)和雙引號(hào)) echo *.jpg這將打印*.jpg ec

12、ho $Secho把通配符(比如*).jpg 和tux.jpg這將打印出(單引號(hào)和雙引號(hào)) echo *.jpg這將打印*.jpg echo $Sechoecho*.jpg echo$Ss 以 開頭,后面接上一個(gè)字符串,這個(gè)字符串還必須出現(xiàn)在 s 使用#wehaven3arguments.thehelpif$#-lt3;then cat shiftby-)shift;break;#endof-*)echoerror:nosuchoption$1.-hforhelp;exitechoopt_fis$opt_f echoopt_l isechoargisecho2nd argiscmdparser

13、-o-f-somefile1opt_fisopt_l oargis-somefile1 2nd arg is somefile2來(famework.sh,來(famework.sh,cpframework.sh時(shí)讓(#vim:setsw=4ts=4et: catb2h-convertbinarytoUSAGE:b2h-hOPTIONS:-hhelpLE:b2hexit#anerrorandecho$1 exit 1#returnthelastcharacter#returnthelastcharacterofastringin$rval if -z $1 ; then#wcputssomes

14、pacebehindtheoutputthisiswhyweneedsed: numofchar=echo -n $1 | wc -c | sed s/ /g # now cutoutthelastrval=echo-n$1|cut-b#removethelastcharacterinstringandreturnitin$rval if -z $1 ; then#wcputssomespacebehindtheoutputthisiswhyweneedsed: numofchar=echo -n $1 | wc -c | sed s/ /g if$numofchar=1;then # onl

15、y one char in string numofcharminus1=expr$numofchar-1 # now cut all but the last char:rval=echo-n$1|cut-b0-while-n$1;do case $1 in-h)help;shift1;#functionhelpis-)shift;break;# endof-*)errorerror:nosuchoption$1.-hfor#Themain#oneargmustbegiven: -z $1 & help while-n$binnum;do lastchar $binnumif$rval= 1

16、; sum=expr$weight+#removethelast chop $binnum ition#oneargmustbegiven: -z $1 & help while-n$binnum;do lastchar $binnumif$rval= 1; sum=expr$weight+#removethelast chop $binnum itioninweight=expr$weight*echobinary$binnumorigisdecimal$sum 該0 * 1 + 1 * 2 = 2是用了lastchar函數(shù)。該函數(shù)使用wcc計(jì)算字符 月以后,這個(gè)文件可能會(huì)變得很大以至于使對(duì)

17、該文件的速度變慢。下面的efile )為out .1,而對(duì)于.1 就變成了.2 等等等等#vim:setsw=4ts=4et: catefile-ethefileUSAGE:efile-hOPTIONS:-hhelpLE:efileThiswille.grenameout.2toout.3,out.1toout.2,outtoandcreateanemptyout-Themaxnumber andcreateanemptyout-Themaxnumber isexitexit 1while-n$1;do case $1 in-h)help;shift-)-*)echoerror:nosuchoption$1.-hforhelp;exit# if-z$1;errorERROR:youmustspecifyafile,use-hforhelp #renameany.1,.2etcfile: for nin987654321; if-f$filen.$n;then p=expr $n + 1echomv$filen.$n$filen.$p mv $filen.$n $f

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論