




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、Shell腳本基礎主講:劉曉濤1第1頁,共31頁。創(chuàng)建和執(zhí)行shell腳本使用echo命令顯示消息創(chuàng)建變量使用本地和全局變量計算表達式使用if構(gòu)造執(zhí)行基于條件的shell腳本使用case構(gòu)造執(zhí)行基于條件的shell腳本識別用于執(zhí)行重復任務的while、for、和until構(gòu)造在shell腳本中使用break和continue語句控制進程的執(zhí)行計算命令的開始到結(jié)束之間的時間議程2第2頁,共31頁。Shell圖示3第3頁,共31頁。Shell腳本如果你有一系列經(jīng)常使用的Linux命令,你可以把它們存儲在一個文件中。Shell可以讀取這個文件并執(zhí)行其中的命令。這樣的文件被稱為腳本文件執(zhí)行shell腳
2、本要創(chuàng)建一個shell腳本,你要使用任何編輯器比如vi在文本文件中編寫它為了使用bash shell來執(zhí)行腳本magic,其命令是:$ bash magic 或 $ ./magic$為終端提示符(普通用戶)概述4第4頁,共31頁。echo命令 用于在屏幕上顯示消息$ echo This is an example of the echo command這是echo命令的一個例子概述5第5頁,共31頁。# 符號 用于在shell腳本中可以包含注解入口echo “Hello”# This is a comment line. This would not produce any outputech
3、o “world”這個例子中,第二行是一個注解的例子。它將被shell忽略,而且不產(chǎn)生任何消息概述6第6頁,共31頁。創(chuàng)建變量可以在任何時間通過簡單的賦值來創(chuàng)建。 語法=Linux中的所有變量都被當作字符串。引用變量$符號用于引用一個變量的內(nèi)容variable1=$variable2變量7第7頁,共31頁。讀入值給變量在執(zhí)行shell腳本時,shell還允許用戶從鍵盤中輸入一個值給變量??梢允褂胷ead命令來做$ read fname8第8頁,共31頁。局部變量當引用shell時,只有創(chuàng)建它的shell能夠知道到變量的存在全局變量稱為子shellshell中創(chuàng)建的變量局部于創(chuàng)建它的shell,
4、除非使用export命令特別指出是全局的環(huán)境變量通過改變這些變量的值,用戶能夠定制此環(huán)境本地和全局 Shell 變量9第9頁,共31頁。環(huán)境變量(續(xù))一些環(huán)境變量的例子是HOME, PATH, PS1, PS2, LOGNAME, SHLVL, 及SHELLHOME變量Linux系統(tǒng)中的每個用戶都有一個相關(guān)的稱作HOME的目錄當一個用戶登錄后,進入相應的HOME的目錄$ echo $HOME 本地和全局 Shell 變量(續(xù))10第10頁,共31頁。環(huán)境變量(續(xù))PATH變量包含一列用冒號定界的目錄的路徑名字,便于可執(zhí)行程序的搜索PS1變量PS1(Prompt String 1)變量包含了sh
5、ell提示符,$符號$ PS1=HELLOHELLONew prompt本地和全局 Shell 變量(續(xù))11第11頁,共31頁。環(huán)境變量(續(xù))PS2變量是為第二個提示符設置值的環(huán)境變量LOGNAME變量包含用戶的注冊名字$ echo “$LOGNAME”SHLVL變量該變量包含你當前工作的shell level本地和全局 Shell 變量(續(xù))12第12頁,共31頁。環(huán)境變量(續(xù))SHELL變量環(huán)境變量存儲了用戶的缺省shellenv命令可用來查看所有的已移出的環(huán)境變量表和它們各自的值本地和全局 Shell 變量(續(xù))13第13頁,共31頁。在單個命令行中使用多個命令的另一種方法(非Pipe
6、s)是通過命令替換echo The date is date”expr命令用于求值算術(shù)表達式。該命令的輸出被發(fā)送到標準輸出$ expr 4 + 5 將在屏幕上顯示9命令替換14第14頁,共31頁。算術(shù)展開:你可以在$( )中括一個表達式,用下面的命令來計算它的值:$(expression)命令替換(續(xù))15第15頁,共31頁。編寫一個shell腳本用于計算呼叫中心未應答的詢問的數(shù)量。該腳本應該接收一天內(nèi)所報告的詢問的總數(shù)和應答的詢問的數(shù)量,以便計算未應答的詢問的數(shù)量。所有未應答的詢問的總數(shù)=所有詢問的總數(shù)-應答的詢問的數(shù)量echo Please enter the total number o
7、f queries reported today.read totalqueriesecho Please enter the number of queries answered.read answeredpending=$(totalqueries-answered)echo Number of calls pending = $pending“chmod +x callpending Example116第16頁,共31頁。test 和 命令求值表達式,并返回true (0)或 falseif構(gòu)造Linux shell提供了循環(huán)和判定的構(gòu)造,可以在shell腳本中使用算術(shù)測試結(jié)合if構(gòu)造
8、,它可用于測試變量的數(shù)字值條件執(zhí)行17第17頁,共31頁。串測試test命令也可用于字符串文件測試test命令也可用于檢查文件的狀態(tài)exit命令用于終止shell腳本的執(zhí)行并返回到$提示符下條件執(zhí)行(續(xù))18第18頁,共31頁。test測試命令1 -eq:等于則為真-ne:不等于則為真-gt:大于則為真-ge:大于等于則為真-lt:小于則為真-le:小于等于則為真數(shù)值測試 19第19頁,共31頁。test測試命令2=:等于則為真!=:不相等則為真-z字符串:字符串長度為零則為真-n字符串:字符串長度不為零則為真字符串測試20第20頁,共31頁。test測試命令3-e文件名:如果文件存在則為真-
9、r文件名:如果文件存在且可讀則為真-w文件名:如果文件存在且可寫則為真-x文件名:如果文件存在且可執(zhí)行則為真-s文件名:如果文件存在且至少有一個字符則為真-d文件名:如果文件存在且為目錄則為真-f文件名:如果文件存在且為普通文件則為真-c文件名:如果文件存在且為字符型特殊文件則為真-b文件名:如果文件存在且為塊特殊文件則為真-a 并且 o 或者 ! 非文件測試21第21頁,共31頁。#!/bin/bashecho Enter the percentage of calls answered same day.read actualif $actual -le 80 then echo Your
10、 Grade is Average.elif $actual -gt 80 -a $actual -le 90 then echo Your Grade is Good.else echo Your Grade is Outstanding.fiExample222第22頁,共31頁。shell腳本中使用的這個構(gòu)造依據(jù)變量的值而執(zhí)行一組特定指令當變量的值和其中一個指定的值相匹配時,就執(zhí)行寫在該值下的一組命令caseesac 構(gòu)造23第23頁,共31頁。#!/bin/bashecho List of Services Offered by Diaz Telecommunications echo
11、 1) Global Roamecho 2) V-mailecho 3) Mail on Moveecho 4) Caller-IDecho 5) Dial a Pizzaecho n Select the service for which you need more information 1-5 : read choicecase $choice in1) echo You just need one cell-phone number wherever you travel across the world. ;2) echo You can record your messages
12、when you are not able to take a call.;3) echo You can receive e-mail messages on your cell-phone.;4) echo You can display the callers telephone number on your handset screen whenever you receive a call so that you know whos calling.;5) echo You can order for pizza from your cell-phone.;*) echo You h
13、ave selected an invalid option.;esacExample324第24頁,共31頁。while構(gòu)造while dodone只有條件為真時,就執(zhí)行do和done之間的命令 until構(gòu)造until循環(huán)構(gòu)造的求值模式于while循環(huán)相反。until循環(huán)將繼續(xù)執(zhí)行直到求值的條件為真。迭代25第25頁,共31頁。for構(gòu)造for variable_name in dodonefor循環(huán)取一列值作為輸入并對循環(huán)中每個值執(zhí)行循環(huán)break和continue命令break命令引起終止循環(huán)continue命令的使用將強迫一個新的重復迭代(續(xù))26第26頁,共31頁。#!/bin/b
14、ashecode=1000while $ecode -le 1008 do echo Enter data for the employee with Employee Code = $ecode echo -n Employee Name : read name echo -n Email Address : read email echo -n Telephone Number : read telno echo $ecode : $name : $email : $telno ccemployee(ecode=$ecode+1)doneExample427第27頁,共31頁。請求后臺處理用于請求后臺進程的符號是(&)$ wc tempfile & 1 2082 $ vi newfile檢查后臺進程Ps(進程狀態(tài))命令為每個當前活動的每個進程產(chǎn)生一行入口??刂七M程的執(zhí)行28第28頁,共31頁。終止后臺進程可用kill命令,如下所示$ kill 278查看完成一個命令所花的時間你可以使用time命令來查看一個命令從開始到結(jié)束所花的時間。$ time find /etc -name passwd 2 /dev/null控制進程的執(zhí)行(續(xù))29第29頁,共31頁。垂直條 (|) 是管道字符它指示shell :| 前
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年麗水道路運輸從業(yè)資格證模擬考試年新版
- 確保用戶數(shù)據(jù)安全保護措施
- 2025年黑龍江貨運從業(yè)資格證考試500題答案
- 售后服務委托協(xié)議書
- 零售業(yè)實體店數(shù)字化營銷策略及實施方案設計
- 產(chǎn)品采購計劃表格-材料需求與采購時間
- 設備維護保養(yǎng)記錄表格(設備分類)
- 2025年張家口貨運資格證考試口訣
- 水處理與資源回收作業(yè)指導書
- 醫(yī)藥行業(yè)-藥品安全監(jiān)管與追溯系統(tǒng)手冊
- 2025年黑龍江農(nóng)業(yè)工程職業(yè)學院單招職業(yè)適應性測試題庫及答案1套
- 《勞動法常識(第3版)》中職全套教學課件
- 2025年勞動合同延期補充協(xié)議模板
- 2025年日歷表(含農(nóng)歷、節(jié)假日、記事、A4打印版)
- 《反家庭暴力》課件
- 二零二五年度房地產(chǎn)預售合同協(xié)議4篇
- 2025-2030年中國天線行業(yè)市場需求狀況規(guī)劃研究報告
- 2024年南京旅游職業(yè)學院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 如何提升自我管理能力
- 2025年潛江市城市建設發(fā)展集團招聘工作人員【52人】高頻重點提升(共500題)附帶答案詳解
- 人教版(新)九年級下冊化學全冊教案教學設計及教學反思
評論
0/150
提交評論