版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、Linux第7講,Linux 系統(tǒng)應用與程序設計,主講:鄺穎杰 電郵:,Linux第7講,主要內(nèi)容,Shell的作用 Shell程序的編輯和運行 基于Bash的Shell程序設計 變量聲明 表達式 條件判斷 控制結(jié)構(gòu) 參數(shù)訪問,Linux第7講,3,Shell的作用,shell是用戶和系統(tǒng)內(nèi)核之間的接口程序 shell是命令解釋器 在本章中,shell指linux的終端即解釋用戶命令和shell程序的文字終端,用戶,Linux第7講,4,linux下的shell,用戶使用shell的設定 通過查看/etc/passwd文件可以查看用戶使用的shell類型 例子: /etc/passwd部分節(jié)選
2、,webalizer:x:67:67:Webalizer:/var/www/usage:/sbin/nologinxfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologinntp:x:38:38:/etc/ntp:/sbin/nologingdm:x:42:42:/var/gdm:/sbin/nologinhtt:x:100:101:IIIMF Htt:/usr/lib/im:/sbin/nologintom:x:500:500:tom:/home/tom:/bin/bash #可見,tom用戶使用的shell為bash,Linux第7講,5,lin
3、ux下的shell,linux下的shell 通過cat /ect/shells命令查看安裝的shell,Linux第7講,6,shell程序,Shell程序的特點及用途: shell程序可以認為是將shell命令按照控制結(jié)構(gòu)組織到一個文本文件中,批量的交給shell去執(zhí)行 不同的shell解釋器使用不同的shell命令語法 shell程序解釋執(zhí)行,不生成可以執(zhí)行的二進制文件 可以幫助用戶完成特定的任務,提高使用、維護系統(tǒng)的效率 了解shell程序可以更好的配置和使用linux,Linux第7講,Shell使用解釋型語言,不需重新編譯 它適合于編寫執(zhí)行相對簡單的任務的工具,因為它更強調(diào)易于配置
4、、維護和可移植性 它不適合用來完成時間緊迫型和處理器忙碌型的任務,Linux第7講,8,基于bash的shell程序,簡單程序示例,Linux第7講,如何執(zhí)行,可以使用 /bin/sh filename 或給該文件屬性添加執(zhí)行權(quán)限,然后直接執(zhí)行,Linux第7講,基于bash的shell程序,程序編譯和運行過程 一般步驟: 編輯文件 保存文件 將文件賦予可以執(zhí)行的權(quán)限 運行及排錯 常用到的命令: vi,編輯、保存文件 ls -l 查看文件權(quán)限 chmod 改變程序執(zhí)行權(quán)限 直接鍵入文件名運行文件,Linux第7講,shell程序的編輯和執(zhí)行,Linux第7講,shell程序設計,一般結(jié)構(gòu) sh
5、ell類型 函數(shù) 主過程,#!/bin/bash function fun1() . funciton funn() . . . . . . .,函數(shù)定義,shell類型,主過程,Linux第7講,變量的聲明和使用,變量的聲明和使用 變量是弱類型的 聲明變量不用聲明類型 可以存儲不同類型的內(nèi)容 使用靈活 使用時要明確變量的類型 大小寫區(qū)分 變量聲明及賦值格式 格式:變量值(注意:等號兩側(cè)不能有空格) 例如:a=”hello ”b=9,Linux第7講,變量的聲明和使用,變量的引用 格式:$變量名,或者$變量名變量名為一個字符用方式一,變量名多于一個字符建議用第2中方式 例子:a=1abc=he
6、lloecho $aecho $abc,Linux第7講,Linux是一個大小寫敏感的系統(tǒng),shell認為變量foo與Foo是不同的,與FOO也不同 當為變量賦值時,只需要使用變量名,該變量會被自動創(chuàng)建 要使用變量,必須在變量前加$符號,Linux第7講,演示,salutation=hello echo $salutation hello salutation=“yes dear” echo $salutation yes dear salutation=7+5 echo $salutation 7+5,Linux第7講,注意: 如果字符串里包含空格,就必須用引號把它們括起來 還要注意在等號兩
7、邊不能有空格 $a和$a,Linux第7講,使用read將用戶的輸入賦值給變量,read salutation Im jack. echo $salutation Im jack,Linux第7講,使用引號,如果在參數(shù)中包含一個或多個空白字符,必須給參數(shù)加雙引號 如果把一個帶有$字符的變量放在雙引號中,程序執(zhí)行到該行時會把變量替換為它的值 如果你把它放在單引號中,不會發(fā)生替換現(xiàn)象 可用字符取消$的特殊含義 字符串通常被放在雙引號中,Linux第7講,單引號、倒引號,由單引號括起來的字符都作為普通字符出現(xiàn) 倒引號括起來的字符串被shell解釋為命令行,在執(zhí)行時shell會先執(zhí)行該命令行,并以它的
8、標準輸出結(jié)果取代整個倒引號部分,Linux第7講,演示,#!/bin/sh myvar=“Hi there” echo $myvar echo “$myvar” echo $myvar echo $myvar echo Enter some text read myvar echo $myvar now equals $myvar exit 0,Linux第7講,環(huán)境變量,$HOME 當前用戶的主目錄 $PATH 以冒號分隔的用來搜索命令的目錄列表 $PS1 命令提示符,通常是$字符 $PS2 二級提示符 $IFS 輸入域分隔符,當shell讀取輸入時,用來分隔單詞的一組字符,它們通常是空格、
9、制表符 $0 shell腳本的名字 $# 傳遞給腳本的參數(shù)個數(shù) $ shell腳本的進程號,Linux第7講,提示符特殊字符代碼字符 含義! 顯示該命令的歷史記錄編號。# 顯示當前命令的命令編號。$ 顯示$符作為提示符,如果用戶是root的話,則顯示#號。 顯示反斜杠。d 顯示當前日期。h 顯示主機名。n 打印新行。nnn 顯示nnn的八進制值。s 顯示當前運行的shell的名字。t 顯示當前時間。u 顯示當前用戶的用戶名。W 顯示當前工作目錄的名字。w 顯示當前工作目錄的路徑。,Linux第7講,參數(shù)變量,$1 $2 $3 . 腳本程序的參數(shù) $* 在一個變量中列出所有的參數(shù),各個參數(shù)之間用
10、環(huán)境變量IFS中的第一個字符分隔開 $ 它是$*的一種變體,它不使用IFS環(huán)境變量,所以當IFS為空時,參數(shù)的值不會結(jié)合在一起,Linux第7講,演示,$ IFS= $ set foo bar bam $ echo “$” foo bar bam $ echo “$*” foobarbam $ unset IFS $ echo “$*” foo bar bam,Linux第7講,演示,#!bin/sh sa=Hello echo $sa echo the program $0 is now running echo the second parameter was $2 echo the fi
11、rst parameter was $1 echo the parameter list was $* echo the users home directory is $HOME echo please enter a new word reas sa echo $sa echo the script is now complete exit 0,Linux第7講,常用的運算符,整數(shù)的算術(shù)運算符 +、*、/、%; 賦值運算符 、*、/、 位運算符 、&、|、; 位運算賦值運算符 、&、|、; 邏輯運算符: &,|,!,!,,Linux第7講,簡單數(shù)學表達式,expr命令計算一個表達式的值 格
12、式 :expr arg 例子:計算(23)4的值1、分步計算,即先計算23,再對其和乘4s=expr 2 + 3expr $s * 42、一步完成計算:expr expr 2 + 3 * 4 說明: 運算符號和參數(shù)之間要有空格分開; 通配符號(*),在作為乘法運算符時要用、“”、符號修飾,Linux第7講,簡單數(shù)學表達式,let命令 格式:let arg1 arg2 . 例子:計算(23)4的值let s=(2+3)*4 說明: 與expr命令相比,let命令更簡潔直觀 當運算符中有、&、|等符號時,同樣需要用引號(單引號、雙引號)或者斜杠來修飾運算符,Linux第7講,條件判斷,常見的條件:
13、 變量屬性; 文件屬性; 命令執(zhí)行結(jié)果; 多種條件的邏輯組合; 判斷結(jié)果的一般定義: 真:0 假:1 格式: test condition condition ,Linux第7講,條件判斷,測試文件屬性,Linux第7講,條件判斷,字符串屬性,Linux第7講,整數(shù)關系,整數(shù)間關系判斷,Linux第7講,控制結(jié)構(gòu),控制結(jié)構(gòu):根據(jù)某個條件的判斷結(jié)果,改變程序執(zhí)行的路徑??梢院唵蔚膶⒖刂平Y(jié)構(gòu)分為分支和循環(huán)兩種 。 常見分支結(jié)構(gòu): if case 常見循環(huán)結(jié)構(gòu): for while until,Linux第7講,if分支,格式:,說明: 中括號中的部分可省略; 當條件為真(0)時執(zhí)行then后面的語
14、句,否則執(zhí)行else后面的語句; 以fi作為if結(jié)構(gòu)的結(jié)束。,if 條件1 then 命令 elif 條件2 then 命令 else 命令 fi,Linux第7講,case分支,格式:,說明: “條件”可以是變量、表達式、shell命令等; “模式”為條件的值,并且一個“模式”可以匹配多種值,不同值之間用豎線(|)聯(lián)結(jié) ; 一個模式要用雙分號(;)作為結(jié)束 ; 以逆序的case命令(esac)表示case分支語句的結(jié)束,case 條件 in 模式1) 命令1 ; 模式2) 命令2 ; . 模式n) 命令n ; esac,Linux第7講,for循環(huán),格式,說明: “列表”為存儲了一系列值的列
15、表,隨著循環(huán)的進行,變量從列表中的第一個值依次取到最后一個值; do和done之間的命令通常為根據(jù)變量進行處理的一系列命令,這些命令每次循環(huán)都執(zhí)行一次; 如果中括號中的部分省略掉,Bash則認為是“in $”,即執(zhí)行該程序時通過命令行傳給程序的所有參數(shù)的列表。,for 變量 in 列表 do 命令(通常用到循環(huán)變量) done,Linux第7講,while循環(huán)與until循環(huán),格式:,說明: while循環(huán)中,只要條件為真,就執(zhí)行do和done之間的循環(huán)命令; until循環(huán)中,只要條件不為真,就執(zhí)行do和done之間的循環(huán)命令,或者說,在until循環(huán)中,一直執(zhí)行do和done之間的循環(huán)命令,直到條件為真; 避免生成死循環(huán)。,
溫馨提示
- 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山東濟南城投集團校園招聘63人筆試參考題庫附帶答案詳解
- 工地水車出租合同范本
- 居間合同定金合同范本
- 怎樣打印預售合同范本
- 委托中介轉(zhuǎn)讓合同范本
- 建設工程保密協(xié)議合同
- 定制內(nèi)衣預售合同范本
- 定向醫(yī)療招聘合同范本
- 婚前財產(chǎn)買房合同范本
- 建設工程發(fā)包合同范本
- 塔司、信號工安全晨會(班前會)
- 《電力建設安全工作規(guī)程》-第1部分火力發(fā)電廠
- 2024全國職業(yè)院校技能大賽ZZ060母嬰照護賽項規(guī)程+賽題
- 回顧性臨床研究的設計和分析
- 配電一二次融合技術(shù)的發(fā)展應用
- 鋼板鋪設安全施工方案
- 八年級物理上冊期末測試試卷-附帶答案
- 硬件設計與可靠性
- 垃圾滲濾液處理站運維及滲濾液處理投標方案(技術(shù)標)
- 經(jīng)緯度叢書 秦制兩千年:封建帝王的權(quán)力規(guī)則
- ppt素材模板超級瑪麗
評論
0/150
提交評論