版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年設(shè)備借款擔(dān)保合同
- 設(shè)備進(jìn)場驗收登記制度(4篇)
- 范進(jìn)中舉課本劇
- 2025賓館公共區(qū)域綠化養(yǎng)護(hù)與美化合同3篇
- 2024年設(shè)計服務(wù)外包合同范本版B版
- 2024養(yǎng)老院老年文化娛樂活動合作協(xié)議3篇
- 2024版:某科技公司與某政府部門之間關(guān)于智慧城市建設(shè)技術(shù)服務(wù)的合同
- 2024年軟件知識產(chǎn)權(quán)許可與全球市場拓展協(xié)議2篇
- 麗水學(xué)院《中西醫(yī)結(jié)合實(shí)驗診斷研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 湖南有色金屬職業(yè)技術(shù)學(xué)院《外科》2023-2024學(xué)年第一學(xué)期期末試卷
- 醫(yī)療美容服務(wù)風(fēng)險免責(zé)協(xié)議書
- 2024年鋁錠購銷的合同雙方信息登記表
- 貴州省遵義市播州區(qū)2023-2024學(xué)年二年級上學(xué)期數(shù)學(xué)期末質(zhì)量監(jiān)測試卷
- 2024版智能硬件產(chǎn)品研發(fā)合作協(xié)議3篇
- 《乘用車越野性能主觀評價方法》
- 國家電網(wǎng)招聘之財務(wù)會計類題庫含完整答案(必刷)
- 幼師個人成長發(fā)展規(guī)劃
- 乘風(fēng)化麟 蛇我其誰 2025XX集團(tuán)年終總結(jié)暨頒獎盛典
- 2024年同等學(xué)力申碩英語考試真題
- 連熔石英拉管項目、大規(guī)格蜂窩陶瓷項目可行性報告
- 鄉(xiāng)鎮(zhèn)長任職表態(tài)發(fā)言3篇
評論
0/150
提交評論