shell編程入門

shell編程入門

ID:25923872

大?。?5.50 KB

頁數(shù):25頁

時(shí)間:2018-11-23

shell編程入門_第1頁
shell編程入門_第2頁
shell編程入門_第3頁
shell編程入門_第4頁
shell編程入門_第5頁
資源描述:

《shell編程入門》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、從程序員的角度來看,Shell本身是一種用C語言編寫的程序,從用戶的角度來看,Shell是用戶與Linux操作系統(tǒng)溝通的橋梁。用戶既可以輸入命令執(zhí)行,又可以利用Shell腳本編程,完成更加復(fù)雜的操作。在LinuxGUI日益完善的今天,在系統(tǒng)管理等領(lǐng)域,Shell編程仍然起著不可忽視的作用。深入地了解和熟練地掌握Shell編程,是每一個(gè)Linux用戶的必修功課之一。Linux的Shell種類眾多,常見的有:BourneShell(/usr/bin/sh或/bin/sh)、BourneAgainShell(/bin/bash)、CShell(/usr/bin/csh)、KShell(/usr

2、/bin/ksh)、ShellforRoot(/sbin/sh),等等。不同的Shell語言的語法有所不同,所以不能交換使用。每種Shell都有其特色之處,基本上,掌握其中任何一種就足夠了。在本文中,我們關(guān)注的重點(diǎn)是Bash,也就是BourneAgainShell,由于易用和免費(fèi),Bash在日常工作中被廣泛使用;同時(shí),Bash也是大多數(shù)Linux系統(tǒng)默認(rèn)的Shell。在一般情況下,人們并不區(qū)分BourneShell和BourneAgainShell,所以,在下面的文字中,我們可以看到#!/bin/sh,它同樣也可以改為#!/bin/bash。利用vi等文本編輯器編寫Shell腳本的格式是

3、固定的,如下:#!/bin/sh#commentsYourcommandsgohere首行中的符號(hào)#!告訴系統(tǒng)其后路徑所指定的程序即是解釋此腳本文件的Shell程序。如果首行沒有這句話,在執(zhí)行腳本文件的時(shí)候,將會(huì)出現(xiàn)錯(cuò)誤。后續(xù)的部分就是主程序,Shell腳本像高級(jí)語言一樣,也有變量賦值,也有控制語句。除第一行外,以#開頭的行就是注釋行,直到此行的結(jié)束。如果一行未完成,可以在行尾加上",這個(gè)符號(hào)表明下一行與此行會(huì)合并為同一行。編輯完畢,將腳本存盤為filename.sh,文件名后綴sh表明這是一個(gè)Bash腳本文件。執(zhí)行腳本的時(shí)候,要先將腳本文件的屬性改為可執(zhí)行的:chmod+xfilena

4、me.sh執(zhí)行腳本的方法是:./filename.sh下面我們從經(jīng)典的“helloworld”入手,看一看最簡單的Shell腳本的模樣。#!/bin/sh#printhelloworldintheconsolewindowa="helloworld"echo$aShellScript是一種弱類型語言,使用變量的時(shí)候無需首先聲明其類型。新的變量會(huì)在本地?cái)?shù)據(jù)區(qū)分配內(nèi)存進(jìn)行存儲(chǔ),這個(gè)變量歸當(dāng)前的Shell所有,任何子進(jìn)程都不能訪問本地變量。這些變量與環(huán)境變量不同,環(huán)境變量被存儲(chǔ)在另一內(nèi)存區(qū),叫做用戶環(huán)境區(qū),這塊內(nèi)存中的變量可以被子進(jìn)程訪問。變量賦值的方式是:variable_name=vari

5、able_value如果對(duì)一個(gè)已經(jīng)有值的變量賦值,新值將取代舊值。取值的時(shí)候要在變量名前加$,$variable_name可以在引號(hào)中使用,這一點(diǎn)和其他高級(jí)語言是明顯不同的。如果出現(xiàn)混淆的情況,可以使用花括號(hào)來區(qū)分,例如:echo"Hi,$as"就不會(huì)輸出“Hi,helloworlds”,而是輸出“Hi,”。這是因?yàn)镾hell把$as當(dāng)成一個(gè)變量,而$as未被賦值,其值為空。正確的方法是:echo"Hi,${a}s"單引號(hào)中的變量不會(huì)進(jìn)行變量替換操作。關(guān)于變量,還需要知道幾個(gè)與其相關(guān)的Linux命令。env用于顯示用戶環(huán)境區(qū)中的變量及其取值;set用于顯示本地?cái)?shù)據(jù)區(qū)和用戶環(huán)境區(qū)中的變量及

6、其取值;unset用于刪除指定變量當(dāng)前的取值,該值將被指定為NULL;export命令用于將本地?cái)?shù)據(jù)區(qū)中的變量轉(zhuǎn)移到用戶環(huán)境區(qū)。下面我們來看一個(gè)更復(fù)雜的例子,結(jié)合這個(gè)例子,我們來講述ShellScript的語法。1#!/bin/bash2#wehavelessthan3arguments.Printthehelptext:3if[$#-lt3];then4cat<

7、.HTMfilesin*.html:9ren'HTM$''html'*.HTM1011HELP12exit013fi14OLD="$1"15NEW="$2"16#Theshiftcommandremovesoneargumentfromthelistof17#commandlinearguments.18shift19shift20#$*containsnowallthefiles:21forfilein$*;do22if[-f"$

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。