Linux下的shell編程.ppt_第1頁
Linux下的shell編程.ppt_第2頁
Linux下的shell編程.ppt_第3頁
Linux下的shell編程.ppt_第4頁
Linux下的shell編程.ppt_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第三章 Linux 下 shell 編程,Shell腳本(外殼腳本)就是將多條終端命令編寫到一起,通過使用變量和流程控制等實(shí)現(xiàn)一定的交互式功能。,一、什么是 shell:,用戶與Linux的接口 命令解釋器 編程語言,二、shell的種類、創(chuàng)建與執(zhí)行:,Linux中有多種不同的shell,如csh、tcsh、ash、bash 等 , 但是通常我們使用 bash 進(jìn)行shell編程,因為 bash 是免費(fèi)的并且很容易使用。,1、用vi 編輯器將一系列命令別寫成 .sh文件,程序必須以下面的行開始#!/bin/sh,2、用chmod修改該文件的執(zhí)行權(quán)限;,3、./ 文件名 或者 sh 文件名,以#

2、開頭的句子表示注釋,直到這一行的結(jié)束,三、shell 編程:,1、echo 命令和 read 命令:,echo:輸出變量或者常量到終端。,read:將終端的輸入賦給某個變量。,echo “today is date ,please enter your name” # this is an example of echo and read command! read name echo -n “the name you entered is $name”,在單個命令行中使用多個命令的方法,2、變量的創(chuàng)建與引用:,可以在任何時間通過簡單的賦值來創(chuàng)建:,variable name = value,

3、Linux里面所有的變量都被當(dāng)做字符串,引用變量:$ variablename,a=5+4 b=$(5+4) c=expr 5 + 3 echo $a $b expr 5 + 3 c=$(a-b) (a=$a+1),a=hello world echo “a is: echo $a,常見的環(huán)境變量有:HOME PATH PS1等,可以像定義一個變量一樣來設(shè)置環(huán)境變量,在標(biāo)記它為環(huán)境變量時需要使用“ export ”命令應(yīng)用示例: $ export MYENV=1 $ echo $MYENV 使用“ set ”命令可以獲取當(dāng)前上下文中全部的變量,用戶變量: 環(huán)境變量: 位置變量:$0 $1 $2

4、 $3 $# $* $,變量:,環(huán)境變量:,Vi etc/profile (PATH=$PATH:. export PATH),$# :用于存放命令行中所鍵入的參數(shù)個數(shù) $*:可以引用傳遞給程序的所有參數(shù) $:和$*一樣,執(zhí)行Shell腳本時可以使用參數(shù)。由出現(xiàn)命令行上的位置確定的參數(shù)稱做位置參數(shù)。位置變量:$0 、$1、 $2、$3 $#、 $*、 $。,位置變量,echo $# arguments passed echo they are $*,編寫腳本args:,執(zhí)行:chmod ./args a b c,shiftdemo程序如下: echo $# $* shift echo $# $

5、* shift echo $# $* shift echo $# $* 執(zhí)行: chmod +x shiftdemo ./ shiftdemo a b c,位置參數(shù)的 shift 命令,3、轉(zhuǎn)義字符和通配字符:,轉(zhuǎn)義字符指的是在Shell中有特殊含義的字符。 例如: | ? * $ “ ( ) # ls file1-10.c # count=ls l | grep d | wc l ls l /dev | more # cat b.txt #cat a.txtb.txt # echo $(5+4) #echo ”The date is date” #echo $countabc 編寫一段程序計

6、算兩個輸入數(shù)之差,4、測試命令: test 和 ,求值表達(dá)式,并返回 true 或者 false,數(shù)值測試 串測試 文件測試,5、if case 條件控制語句:,if 測試條件1 then conmmand1 elif 測試條件2 then command2 Else fi,case string in string1 ) commands;; string2 ) commands;; * ) commands; esac,echo please enter your score: read c if test $c -lt 80 then echo bad! elif test $c -lt

7、 90 -a $c -ge 80 then echo good! else echo very good! fi,-a 并且 -o 或者 !非,if $1 -gt 100 then echo the number is greater than 100. elif $1 -lt 10 then echo the number is smaller than 10. else echo the number is between 10 and 100. fi $ ./ifdemo 100,echo “本腳本提供以下服務(wù): echo n “1)列出當(dāng)前文件夾內(nèi)的基本信息;“ echo “2)列出當(dāng)

8、前文件夾內(nèi)的所有信息; echo “3)退出腳本; echo “請輸入您的選擇1-3 read choice case $choice in 1)ls ; 2)ls -l; 3)exit; *)echo “選擇有誤!; esac,用case結(jié)構(gòu)實(shí)現(xiàn)三項基本服務(wù)的功能:,用case結(jié)構(gòu)實(shí)現(xiàn)中英文數(shù)字轉(zhuǎn)換的程序,if $# -ne 1 then echo usage: ./casedemo number exit 1 fi case $1 in 0) echo zero; 1) echo one; 2) echo two; 8) echo eight; 9) echo nine; esac,# d

9、isplay files under a given directory # $1-the name of the diectory # $2-the name of files dir=$1;shift if -d $dir then cd $dir if -f $1 then cat $1 echo End of $ dir / $1 else echo Invalid file name: $ dir / $1 fi else echo Bad directory name : $dir fi,6、for until while循環(huán)語句:,for var in word1 word2wo

10、rdn do command done,for i in 1 2 3 do echo $i done,例如:,for var do command done,for i do echo $i done,執(zhí)行時加上參數(shù),以空格隔開,i會用參數(shù)自動賦值,# display files under a given directory # $1-the name of the diectory # $2-the name of files dir=$1;shift if -d $dir then cd $dir for name do if -f $name then cat $name echo E

11、nd of $ dir / $name else echo Invalid file name: $ dir / $name fi done else echo Bad directory name : $dir fi,While循環(huán),while 表達(dá)式 do command done,while “$#” -ne 0 do echo “$1” shift done 執(zhí)行: $ chmod +x whiledemo $ ./whiledemo a b c,until command1 do command done,Until 循環(huán),xuehao=1 while $xuehao -le 3 d

12、o echo Please enter the info about xuehao=$xuehao echo please enter name: read name echo please enter telephonenum: read tel echo xuehao:$xuehao name:$name tel:$tela.txt (xuehao=$xuehao+1) / xuehao=$($xuehao+1) done,xuehao=expr $xuehao + 1,7、函數(shù)的定義和調(diào)用,一個函數(shù)是一個子程序,用于實(shí)現(xiàn)一串操作的代碼塊(code block),它是完成特定任務(wù)的黑盒子. 當(dāng)有重復(fù)代碼, 當(dāng)一個任務(wù)只需要很少的修改就被重復(fù)幾次執(zhí)行時, 這時你應(yīng)考慮使用函數(shù).,funcname() command . command ,函數(shù)被調(diào)用或被觸發(fā), 只需要簡單地用函數(shù)名調(diào)用.,iscontin

溫馨提示

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

最新文檔

評論

0/150

提交評論