資源描述:
《Linux Shell編程基礎(chǔ).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、LinuxShell編程基礎(chǔ)腳本編程傳統(tǒng)的DOS批處理文件(*.bat)Windows腳本:vbscript(*.vbs)Javascript(*.js)UnixShell腳本指定腳本執(zhí)行所使用的shell如果Script的第一個(gè)非空字符不是"#",則它會(huì)使用Bourne?Shell。如果Script的第一個(gè)非空字符是"#"時(shí),但不以"#!"開頭時(shí),則它會(huì)使用C?Shell。如果Script以“#!”開頭,則“#!”后面所寫的就是所使用的Shell,而且要將整個(gè)路徑名稱指出來*建議使用第3種方法執(zhí)行shell腳本程序的方法shellnamescriptname.scriptna
2、me在shell中使用變量Bourne?Shell的變數(shù)類型只有字串變量,所以要使用數(shù)值運(yùn)算則必須靠外部命令達(dá)到目的變量主要包括用戶變量和系統(tǒng)變量兩類為變量賦值:var=string取用變量時(shí)則在變量名稱前加上一“$”號(hào)如果需要處理數(shù)值運(yùn)算,可以使用expr命令expr用法expr一般用于整數(shù)值計(jì)算,常用于程序計(jì)數(shù)器,實(shí)例如下:expr10+10expr10*10expr30/10常用系統(tǒng)變量$HOME使用者自己的目錄$PATH執(zhí)行命令時(shí)所搜尋的目錄$TZ時(shí)區(qū)$MAILCHECK每隔多少秒檢查是否有新的信件$PS1在命令列時(shí)的提示號(hào)$PS2當(dāng)命令尚未打完時(shí),Shell要求再輸
3、入時(shí)的提示號(hào)$MANPATH?man指令的搜尋路徑實(shí)例1#!/bin/shname=yangecho$nameecho$PATHPATH=$PATH:$HOME/binecho$PATHi=0i=`expr$i+3`echo$i使用特殊變量$0這個(gè)程序的執(zhí)行名字$n這個(gè)程序的第n個(gè)參數(shù)值,n=1..9?$*這個(gè)程序的所有參數(shù)$#這個(gè)程序的參數(shù)個(gè)數(shù)$$這個(gè)程序的PID?$!執(zhí)行上一個(gè)背景指令的PID?$?執(zhí)行上一個(gè)指令的返回值使用shift命令可以將參數(shù)后移實(shí)例2:testvar#!/bin/shecho?Filename:?$0?echo?Argument
4、s:?$*echo?Number?ofargs.:?$#?echo?2ndarg.:?$2?shift?echo?Number?ofargs.:?$#?echo?2ndarg.:?$2?set?hello,?world?echo?Arguments:?$*?echo?2ndarg.:?$2執(zhí)行shtestvarthisismyshellscript獲取用戶輸入使用read命令可以獲取用戶的輸入并賦予變量read?var1?var2.....實(shí)例3#!/bin/shechoPleaseinputyourname:readnameechoYournameis:$
5、name條件測試測試文件狀態(tài)-d:目錄-s:文件非空-f:正規(guī)文件-w:可寫-L:符號(hào)鏈接-u:文件有suid位-r:可讀-x:可執(zhí)行條件測試比較表達(dá)式-eq=字符串:-ne!=-gt>-n:非空串-lt<-z:空串-le<=-ge>=條件測試邏輯操作-a,&&-o,
6、
7、!條件測試#[-f/etc/passwd-a-f/etc/inittab]#echo$?0#[-x/etc/passwd-o-x/bin/sh]#echo$?0流程控制:分支結(jié)構(gòu)if...then...else…fiif...then...elif...then…ficasevarinstring1)
8、?command...?;;*)command...;;esac實(shí)例4#!/bin/shuntilechoListDirectory..........1echoChangeDirectory....2echoEditFile...........…….3echoRemoveFile.............4echoExitMenu...........…..5echoPleaseinputyourchoice:readchoicetest$choice=5docase$choicein1)ls;;2)echoEntertargetdirectoryreaddircd$
9、dir;;3)echoEnterfilenamereadfilevi$file;;4)echoEnterfilenamereadfilerm$file;;q
10、Q
11、5)echoGoodbyeexit;;*)echoillegalOptionesacdone流程控制:循環(huán)結(jié)構(gòu)for循環(huán):forvarin[list]docommands...donewhile循環(huán):while[condition]docommands...done流程控制:循環(huán)結(jié)構(gòu)until循環(huán):until[conditi