資源描述:
《linux bash shell編程》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Linuxbashshell第七組:齊小川、張文利郭成、趙偉利楊紅梅、韓秀秀張聞棋、翟江潮LinuxBashShell編程-Shell簡介Shell在UNIX/Linux操作系統(tǒng)中,既是一種命令解釋器,又是一種程序設(shè)計語言。作為人機(jī)交互的命令解釋器,Shell將用戶鍵入的命令字符行轉(zhuǎn)換成內(nèi)核能夠理解的形式,繼而執(zhí)行相應(yīng)的功能。作為程序設(shè)計語言,它支持絕大多數(shù)在高級語言中能見到的程序元素,如函數(shù)、變量、數(shù)組和程序控制結(jié)構(gòu)等。UNIX/Linux中常見的shell有ash、BourneShell(sh)、bash(BourneA
2、gainShell)、ksh、pdksh、csh、tcsh、pdksh、zsh等。LinuxBashShell編程-Shell語法Shell變量Shell變量命名規(guī)則①變量名必須以字母或下劃線開始,后面跟字母、數(shù)字或下劃線組成的字符序列②不要使用Shell語法關(guān)鍵字(如export、while、for等)或系統(tǒng)保留特殊字符(如‘?’、‘*’等)③變量名區(qū)分大小寫Shell變量定義與賦值變量的定義和賦值是同步進(jìn)行的,變量值均當(dāng)成字符串,未定義的變量值為空串變量定義和賦值的基本格式varname=字符串Shell變量的引用變量引
3、用基本格式:$varname或${varname}注:當(dāng)引用未經(jīng)定義或初始化的變量,其引用結(jié)果為空值賦值與引用舉例:str1=hello,worldstr1=”hello,worldstr1=’hello,world’exporta=50CurDir=`pwd`CurDir=$(pwd)echo$str1PATH=“$PATH:$HOME/bin”Shell中預(yù)定義的特殊變量#:存儲Shell程序中命令行參數(shù)的個數(shù)?:存儲上一執(zhí)行命令的返回值0-9:存放腳本程序命令的位置參數(shù)*:存儲Shell程序的所有參數(shù)@:存儲所有命令行
4、輸入的參數(shù)Shell條件語句If語句基本格式ifexpressionlthencommandselifexpression2thencommandselsecommandsfi#!/bin/bash#Thisisexampleaboutifstatement.echo–n"Pleaseinputtheanswer:"readIif[$I=y]Thenecho"Theanswerisright"elif[$I=n]thenecho"Theansweriswrong"elseecho"BadInput."fi#end該腳本文件實
5、現(xiàn)讀取一個字符,然后根據(jù)字符的值顯示不同的內(nèi)容case語句基本格式casevariableinpattern1commands;;pattern2commands;;…patternncommands;;esac#!/bin/bashecho"----------"echo"1Restore“echo"2Backup"echo"3Upload"echo-n"EnterChoice:"readCHOICEcase"$CHOICE"in1
6、R)echo"1Restore";;2
7、B)echo"2Backup";;3
8、U)echo
9、"3Upload";;*)echo"sorry$CHOICEisnotavalidchoice!"exit1esac#end使用case語句建立一個文本行的選擇菜單,并根據(jù)輸入顯示選擇的選項Shell循環(huán)語句for循環(huán)語句基本格式格式1:forvarinlistdocommandsdone格式2forvardocommandsdonewhile循環(huán)語句基本格式:whileexpressiondocommandsdoneuntil循環(huán)語句untilexpressiondocommandsdone#!/bin/bashforfi
10、lein*.txtdoecho"-----------------------------------"echo$fileecho"-----------------------------------"cat$filedone#end顯示當(dāng)前工作目錄下所有擴(kuò)展名為.txt的文件名及內(nèi)容Shell函數(shù)函數(shù)的定義函數(shù)的定義基本形式functionname(){Shellcommands}函數(shù)的引用Shell函數(shù)的使用方法與外部命令一樣,只要直接使用函數(shù)名即可。函數(shù)處理參數(shù)的方式與腳本文件處理命令行參數(shù)方法一樣。在函數(shù)中,$1是
11、指傳入函數(shù)的第1個參數(shù),$2是指傳入函數(shù)的第2個參數(shù)。同時也可以使用shift命令來移動函數(shù)參數(shù)#!/bin/bashmax(){while[$1]doif[$maxvalue]thenif[$1–gt$maxvalue]thenmaxvalue=$1fielsemaxvalue=$1fi