Linux試驗(yàn)四shell編程一_第1頁(yè)
Linux試驗(yàn)四shell編程一_第2頁(yè)
Linux試驗(yàn)四shell編程一_第3頁(yè)
Linux試驗(yàn)四shell編程一_第4頁(yè)
Linux試驗(yàn)四shell編程一_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

實(shí)驗(yàn)四shell編程(一)一、實(shí)驗(yàn)?zāi)康?、了解shell的概念2、了解shell變量的種類(lèi)及其使用3、理解和掌握條件測(cè)試的原理和方法4、掌握用VI創(chuàng)建shell腳本的方法5、掌握shell腳本的執(zhí)行方法二、實(shí)驗(yàn)環(huán)境安裝了Linux系統(tǒng)的計(jì)算機(jī)一臺(tái)[yanjitaiocalhostvi[yanjitaiocalhostpsPIDTTY TIME CMD2627pts/E)06:00:00bash2690ptS/006:00:00ps[yanjitaiacalhostecho"Numberofparametersis:"$#Numberofparametersis:Q[yanji@localhostecho"Programnameis:"$BProgramnameis:ba5h[yanji(alocalhostecho"Parametersd5asinglestringis:"$*Parameters己5asinglestringis:[yanjitalacalhost(二)SHELL中的特殊字符1、通配符通常的通配符有三種:*星號(hào),它匹配任意字符的0次或多次出現(xiàn)。但注意,文件名前面的圓點(diǎn)(.)和路徑名中的斜線(/)必須顯示匹配。?問(wèn)號(hào),它匹配任意一個(gè)字符。應(yīng)該注意:字符*和?在一對(duì)方括號(hào)外面是通配符,若出現(xiàn)在其內(nèi)部,它們就失去通配符的能力了。!嘆號(hào),若它緊跟在一對(duì)方括號(hào)的左方括號(hào)[之后,則表示不在一對(duì)方括號(hào)中所列出的字符。[/anji^ccalhost Is-xchap*chapOLchap02chapOJchapG4chapQSchapxch兩乙[yanji@localho5t IschapichapQLchap02chap03chap64chap05chapxchapz[yanji@^ccalhost Ischap??chapOLchap02th叩03chapG4chap05[/anji^ccalhost IsIs:無(wú)法訪問(wèn)時(shí)力:沒(méi)有那十文件或目錄[yanjKBiXocaLhostmymy1my2my3上壯白。:模枷:■]$Is[ITiLe]*?迥頻:圖片:白-產(chǎn)1:下赳:S岳;克t±r;分析:除了file文件,其他都列出來(lái)2、引號(hào)在SHELL中引號(hào)分為三種:?jiǎn)我?hào)、雙引號(hào)、和倒引號(hào)。(1)雙引號(hào)由雙引號(hào)括起來(lái)的字符,除$、倒引號(hào)和反斜線(\)仍保留其功能外,其余字符通常作為普通字符對(duì)待。[yan:WalhD5t-]secho'Cmandsubsti:u:ionuses'''JtileTEfllisevaluatedusing?TERH"Connard燦我it」二。nu免。whileTERMise^luated也叩xtern[yanjWalhost-]secho'uiyUoue/yand"-louc”的c2)單引號(hào)由單引號(hào)括起來(lái)的字符都作為普通字符出現(xiàn)。(3)倒引號(hào):odayis:\\n[yanji@l-ocalhost?]$echo'yarjUaiocalhostechoThedateisdate'hedate152016年12月〃日星期二09:33:16C5T分析:?jiǎn)我?hào)括起來(lái)的字符都作為普通字符出現(xiàn);反引號(hào)包圍起來(lái)的字符串被運(yùn)行,date顯示當(dāng)前的日期。(4)反斜線

轉(zhuǎn)義字符,若想在字符串中使用反斜線本身,則必須采用(\\)的形式,其中第一個(gè)反斜線作為轉(zhuǎn)義字符,而把第二個(gè)反斜線變?yōu)槠胀ㄗ址?。[yanji@Localhost echo \\I[yarji(ai0calb0st echo the newfileisthenewfilei5[yarjitalocalhoat echo the newfileia \\nthenewfile15\n(三)條件測(cè)試1.字符串比較= 比較兩個(gè)字符串是否相等!= 比較兩個(gè)字符串是否不相等-n 判斷字符長(zhǎng)度是否大于零-z 判斷字符長(zhǎng)度是否等于零yarjic^LocaLhost-J$yanji@l-ocaIh-ost-]$[yanji@l-Qcalhost$;yanjicaiocalhost[yanji@l-ocalhost-]$;yanji^localhost[yanji@localhost-]$Dash:[:missing']';yanjic5tocalho51~]$;yanjic31ocalhost$[yanji@l-ocalhost-]$Lsss=ssssJecho$?[sss=Lsss=ssssJecho$?[sss=sss]echo$7[sss!=ssss1echo$?L-n'LoLo'J[-n'Lo']echo$?[-n"]echoi?;yanjic3localhost~,yanjic^localhost-3;ydnjicaiacalhQ51Dasti:syntaxerror;yanjicaiocalhost-;yanjic^localhost~[-Z"]echo$?]$[-z;;]nearunexpected]$[-z'ss']]$echo$?taken分析:條件測(cè)試中,字符串比較有兩種方法:1、test字符操作符字符;2[字符操作符字符],用echo$?顯示結(jié)果,條件成立時(shí),測(cè)試結(jié)果返回值為0,否則為1。上圖中字符串sss不等于ssss,返回值為12.數(shù)字比較-eq比較兩個(gè)數(shù)是否相等-ge比較一個(gè)數(shù)是否大于或是等于另一個(gè)數(shù)-le比較一個(gè)數(shù)是否大于或是等于另一個(gè)數(shù)-ne比較兩個(gè)數(shù)是否不等-gt比較一個(gè)數(shù)是否大于另一個(gè)數(shù)-lt比較一個(gè)數(shù)是否小于另一個(gè)數(shù)[yanjifaiocaLhost[yanjitaiocaLhosttest12-eq12~]$echo$?[yanji(3localhost[yanjitaiocaLhost1test12-eq123echo$?[yanjitatocalhost[yanjifaiocalhost[12-ge10]echo$?[yanjifaiocalhost$test12-le12[yanjifaiocaLhost-]$echo$?0[yanji(aiocalhost test 10 -gt10[yanjKaiocaLhost echo $?[yanjifaiocalhost test 1-It2[yanjifaiocalhost echo $?0[yanjifaiocaLhost-]$分析:數(shù)字比較有兩種方法:1、test整數(shù)操作符整數(shù);2[整數(shù)操作符整數(shù)],用echo$?顯示結(jié)果,條件成立時(shí),測(cè)試結(jié)果返回值為0,否則為1。上圖中,test12-eq12條件成立,返回值為0。3.文件操作符d 確定文件是否為目錄f 確定文件是否為普通文件r 確定是否對(duì)文件設(shè)置了讀許可s 確定文件名是否具有大于零的長(zhǎng)度W 確定文件是否設(shè)置了寫(xiě)許可X 確定文件是否設(shè)置了執(zhí)行許可[yanji'^lacalhiQstLs55chap04chap05chapxchapzdii叫oo於拄的模般視舞圖片文檔下載音樂(lè)點(diǎn)面[yamji(alo€alhQst=〕$test-doo[yanji^localhiDstechos?[yamji^localhiDst?]$test-fchap04[yanji{alQcalhio&t?]$echoS?[yanji?localhiosttest-r[yanjLMocalhiostechos?[yanjl^localhicisttest-s?yhanji@10calhostdiechos?[^anjl@locBlhost?]1$test-w?y[yanji^localhiCiST-]$echos?[yanji^localhiosttest-x[yanji^lotalhiost-]$echos?[yanji@localhiost-]$Is-Imy-rw-n^-r-^1yanji^anji012月2616:21my[yanji@localliDst'■]$test-5chap@4[/anji@localhastT$echo5T[yanjyan|i@iocalhMt^分析:條件測(cè)試中,文件操作符有兩種方法:1、test操作符文件或目錄;2[操作符文件或目錄],用echo$?顯示結(jié)果,條件成立時(shí),測(cè)試結(jié)果返回值為0,否則為1。上圖中,text-xmy條件不成立,返回值為1,用ls顯示my的文件屬性為664證明沒(méi)有執(zhí)行許可。測(cè)試語(yǔ)句:有兩種常用形式:一種是用test命令,如上所示。另一種是用一對(duì)方括號(hào)將測(cè)試條件括起來(lái)。兩種形式完全等價(jià)。例如,測(cè)試位置參數(shù)$1是否是已存在的普通文件,可寫(xiě)成:test-f〃$1〃,也完全可寫(xiě)成:[-f$l]在格式上應(yīng)注意,如果在test語(yǔ)句中使用shell變量,為表示完整、避免造成歧異起見(jiàn)最好用雙引號(hào)將變量括起來(lái)。利用一對(duì)方括號(hào)表示條件測(cè)試時(shí),在左方括號(hào)[之后、右方括號(hào)]之前各應(yīng)有空格。(四)創(chuàng)建簡(jiǎn)單shell程序1、進(jìn)入丫1編輯器2、編寫(xiě)程序例:#!/bin/bashhello()(echo"hellotheretoday,sdateis:date〃)echo"nowgoingtothefunctionhello"helloecho"backfromthefunction"#end#!/bin/bashhelloecho"hellotheretoday'sdateis:ddte"echo"nowgoingtotheftrctiontiello"helloecho"backfromthefurctior"除nd分析:注意開(kāi)頭定義在/bin/bash目錄下腳本,保存文件名為hello.sh(五)執(zhí)行shell程序的方法方法一:加執(zhí)行權(quán)后,程序完整路徑引導(dǎo)。方法二:點(diǎn)空格引導(dǎo)例如:./aa.sh方法三:無(wú)需加執(zhí)行權(quán),通過(guò)bash命令執(zhí)行,以shell程序名為bash命令參數(shù)分析:這里運(yùn)用了其中兩個(gè)方法:1、通過(guò)bash命令執(zhí)行,以shell程序名為bash命令參數(shù),即輸入命令:bashhello.sh回車(chē)后運(yùn)行腳本[yanji@localhostshhello.nowgoingtothefunctionhellohellotheretoday'sdate016年12月26日星期一17:27:15CSTbackfromthefunction[yanjKatoralhostbashhello.shnowgoingtothefunctionhellohellotheretoday'sdateis:2016^12月26日星期一17:28:17CSTbackfromthefunction2、點(diǎn)空格引導(dǎo)./hello,sh,因?yàn)槿鄙賵?zhí)行權(quán)限,用chomd命令添加權(quán)限后,再輸入:./hello.sh后即可運(yùn)行腳本。[yanji@localhost./hello.shbash:./hello.sh:4限不夠[yanji@localhostiIs-Ihello.sh-rw-rw-r-1yanjiyanji14612月2617:22hello.sh[yanjitaiocalhost$chmodu+x,g+xro+wxhello.sh[yanji@localhost-]$Is-Ihello.sh-rwxrwxrwx1yanjiyanji14612月2617:22hello.sh[yanjitaiocalhost?]$./hello.shnowgoingtothefunctionhellohellotheretoday'sdate=:2日16年12月26日星期一17:30:51CSTbackfromthefunction[yanji@lccalhost-]$四、實(shí)驗(yàn)總結(jié)1、通過(guò)實(shí)驗(yàn),我進(jìn)一步了解shell變量的種類(lèi)及其使用;2、我基本掌握了建立了shell腳本的方法,和掌握運(yùn)行shell腳本的方法,對(duì)今后深入的學(xué)習(xí)有重要意義。三、實(shí)驗(yàn)過(guò)程(實(shí)驗(yàn)步驟、記錄、數(shù)據(jù)、分析、結(jié)果)1.Shell變量的定義及其使用。2.位置參數(shù)和環(huán)境變量。3.Shell中的特殊字符。(一)Shell變量Shell有兩

溫馨提示

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

評(píng)論

0/150

提交評(píng)論