資源描述:
《Linux bash shell腳本語(yǔ)法入門.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、1.基礎(chǔ) #!/bin/bash//bash腳本第一句都是這個(gè),他會(huì)讓系統(tǒng)指定以bash來(lái)解釋這個(gè)腳本 #//shell腳本注釋符號(hào) 2.變量和使用 HOME="/home"http://注意賦值不要有空格 a=123 HOME_LIST=$(ls/home)//把命令的執(zhí)行結(jié)果賦值給變量 ehco$HOME//$符號(hào)是獲得變量HOME的值 a=a+1 系統(tǒng)變量: $0這個(gè)程序的執(zhí)行名字 $n 這個(gè)程序的第n個(gè)參數(shù)值,n=1...9 $* 這個(gè)程序的所有參數(shù) $#這個(gè)程序的參數(shù)個(gè)數(shù) $$這個(gè)程序的PID $!執(zhí)行上一個(gè)背景指令的PID $?上一個(gè)指令的返回值 3.
2、if語(yǔ)句 if["22"-lt"33"]then//注意空格 echo"22lessthan33" else echo"no" fi//if語(yǔ)句的結(jié)束 4.case語(yǔ)句 echo"enteranumber" readans//讀取一個(gè)變量read case$ansin 1) echo"younumeris$ans" ;;//注意符號(hào)是兩個(gè); 2) echo"younumberis2" ;; [3-9]) echo"younumberis$ans" ;; *)//*通配符 echo"others" esac 5.比較運(yùn)算符 運(yùn)算符描述示例 文
3、件比較運(yùn)算符 -efilename如果filename存在,則為真[-e/var/log/syslog] -dfilename如果filename為目錄,則為真[-d/tmp/mydir] -ffilename如果filename為常規(guī)文件,則為真[-f/usr/bin/grep] -Lfilename如果filename為符號(hào)鏈接,則為真[-L/usr/bin/grep] -rfilename如果filename可讀,則為真[-r/var/log/syslog] -wfilename如果filename可寫(xiě),則為真[-w/var/mytmp.txt] -xfilename
4、如果filename可執(zhí)行,則為真[-L/usr/bin/grep] filename1-ntfilename2如果filename1比f(wàn)ilename2新,則為真[/tmp/install/etc/services-nt/etc/services] filename1-otfilename2如果filename1比f(wàn)ilename2舊,則為真[/boot/bzImage-otarch/i386/boot/bzImage] 字符串比較運(yùn)算符(請(qǐng)注意引號(hào)的使用,這是防止空格擾亂代碼的好方法) -zstring如果string長(zhǎng)度為零,則為真[-z"$myvar"] -nstrin
5、g如果string長(zhǎng)度非零,則為真[-n"$myvar"] string1=string2如果string1與string2相同,則為真["$myvar"="onetwothree"] string1!=string2如果string1與string2不同,則為真["$myvar"!="onetwothree"] 算術(shù)比較運(yùn)算符 num1-eqnum2等于[3-eq$mynum] num1-nenum2不等于[3-ne$mynum] num1-ltnum2小于[3-lt$mynum] num1-lenum2小于或等于[3-le$mynum] num1-gtnum2大于[3
6、-gt$mynum] num1-genum2大于或等于[3-ge$mynum] 6.bash中幾種循環(huán) 6.1.forname[inword];dolist;done 6.2.for((expr1;expr2;expr3));dolist;done//注意有2層括號(hào) 6.3while[expr]dolist;done 其中l(wèi)ist簡(jiǎn)單說(shuō)就是一串由操作符(operator;、&、&&、
7、
8、) 分各給出一個(gè)簡(jiǎn)單例子: 1. forfilenamein$(ls) do cat$filename done 2. for((i=0;i<10;i++)) do ech
9、o$i done 3. x=1 sum=0 while[$x-le10]//注意[]兩邊的空格 do letsum=sum+$x//shell中算術(shù)計(jì)算使用let letx=x+1 done echo$sum