《Shell程序設(shè)計》PPT課件_第1頁
《Shell程序設(shè)計》PPT課件_第2頁
《Shell程序設(shè)計》PPT課件_第3頁
《Shell程序設(shè)計》PPT課件_第4頁
《Shell程序設(shè)計》PPT課件_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2021/4/21Linux Shell 程序設(shè)計程序設(shè)計Shell Shell 概述概述vivi編輯器的使用編輯器的使用一個簡單的一個簡單的ShellShell程序程序ShellShell變量變量ShellShell表達式表達式ShellShell流程控制語句流程控制語句ShellShell程序的執(zhí)行和跟蹤程序的執(zhí)行和跟蹤2深圳大學深圳大學-馮禹洪馮禹洪: l作為命令編譯器l它接收用戶輸入的命令l解釋用戶輸入的命令并將其送到內(nèi)核去執(zhí)行l(wèi)編程語言lShell編寫的程序與其他應(yīng)用程序有相同的效果l系統(tǒng)管理維護時的重要工具l限時登錄等等Shell概述概述n Shell是系統(tǒng)的用戶界面,提供了用戶與

2、內(nèi)核進行交互操作的一種接口3深圳大學深圳大學-馮禹洪馮禹洪: 標準標準ShellShellBourn ShellBourn ShellC ShellC ShellKorn ShellKorn ShellBashBashtcshtcsh1.1979,第一個,Stephen Bourne2.系統(tǒng)管理任務(wù)的自動化3.缺交互:歷史命令、別名、 作業(yè)控制4.基于Algol語言1.20世紀70年代末,UC Berkeley分校,Bill Joy2.增加交互功能:命令歷史、別名、作業(yè)控制3.基于C語言4.缺點:慢,面向大型機(還是比Bourn Shell慢)Tenex C ShellTenex/TOPS-2

3、0操作系統(tǒng)1.命令補全2.文件名補全3.命令行編輯4.拼寫校正1.1986年發(fā)布,AT&T, David Korn2.向上兼容Bourn Shell3.加入C Shell受歡迎的特性4.快 1988, Borun Again Shell, Brian Fox,Chet Ramey Linux系統(tǒng)上默認的shell Bourn Shell無需修改 C Shell + K Shell的最有用的功能Linux系統(tǒng)對Shell的處理采用獨立自由開放的方式Shell的種類相當多4深圳大學深圳大學-馮禹洪馮禹洪: ShellShell概述概述n命令補齊:命令補齊:tabtab鍵鍵n三個特別的文件三

4、個特別的文件n重定向:重定向:l輸出重定向:“”l輸入重定向:“”l錯誤重定向:“2”l輸出和錯誤同時重定向:“&”文件描述Shell 代號/dev/stdin標準輸入,一般指的是鍵盤輸入0/dev/stdout標準輸出,一般指終端顯示器1/dev/stderr標準錯誤,一般指終端顯示器25深圳大學深圳大學-馮禹洪馮禹洪: 應(yīng)用例子:n將ls的結(jié)果輸出到文件a.out$ls a.out$ls 1a.outn將ls的結(jié)果追加到文件a.out的結(jié)尾,如果文件不存在則創(chuàng)建它$touch file1$echo “Hello” file1$cat file1$ls file1$more file

5、1n將編譯的出錯信息存到文件file2$gcc o test test.c 2file21.1./dev/null/dev/null:所有重定向到它的信息都會消失得無影無蹤6深圳大學深圳大學-馮禹洪馮禹洪: ShellShell概述概述n 命令歷史命令歷史l作用:回顧、修改和重用使用過的歷史命令l相關(guān)變量說明u$HISTFILE: /.bash_historybash 啟動時候:/.bash_history-內(nèi)存bash 退出時候:內(nèi)存中的歷史-/.bash_historyu$HISTSIZE:bash會話期間歷史包含的命令數(shù)量u$HISTFILESIZE:歷史文件中實際存儲的命令數(shù)量l顯示歷

6、史命令u顯示全部歷史 $historyu顯示之前執(zhí)行過的n個命令 $history n查看上一條命令查看下一條命令7深圳大學深圳大學-馮禹洪馮禹洪: ShellShell概述概述n 命令歷史命令歷史l運行歷史命令u運行上一條命令 $! u運行第88條命令!88l搜索歷史命令u使用ctrl+r搜索歷史中的字符串u重復(fù)按ctrl+r可以在歷史命令列表中不斷的向前搜索包含字符串的命令,回車就會執(zhí)行查找的命令8深圳大學深圳大學-馮禹洪馮禹洪: Shell概述概述n ShellShell的管道操作:的管道操作:“| |”l語法語法:命令1 | 命令2 | 命令3n ShellShell命令的排列:命令的

7、排列:“;”、“&”l使用“;”命令時先執(zhí)行命令1,不管命令1是否出錯,接下來就執(zhí)行命令2。u命令語法:命令1;命令2l使用“&”命令時只有當命令1正確運行完畢后,才能執(zhí)行命令2。u命令語法:命令1 &命令29深圳大學深圳大學-馮禹洪馮禹洪: ShellShell概述概述n 命令的替換命令的替換l允許你使用命令的標準輸出就好像它是一個變量值一樣。l語法為:命令命令1 $(1 $(命令命令2 2) 或 命令命令1 1 命令命令2 2 $ls $(pwd)$ls pwd$mail $(who | cut d f1)$mail who |cut d f1 n Shell命令的

8、別名:命令的別名:alias, unalias$alias longlist=ls l$longlist10深圳大學深圳大學-馮禹洪馮禹洪: vivi編輯器的使用編輯器的使用nvi編輯器是所有Linux系統(tǒng)的標準編輯器,用于編輯任何ASCII文本,可以對文本進行創(chuàng)建、查找、替換、刪除、復(fù)制和粘貼等操作nvi編輯器有3種基本工作模式,分別是命令行模式、插入模式和末行模式。 輸入文本輸入模式11深圳大學深圳大學-馮禹洪馮禹洪: vivi編輯器的使用(續(xù))編輯器的使用(續(xù)) 命 令 行 模 式 n 按“i”:從光標當前位置開始輸入文件。 n 按“I”:在光標所在行的行首插入。n 按“a”:從目前光標

9、所在位置的下一個位置開始輸入文字。 n 按“A”:在光標所在行的行末插入。12深圳大學深圳大學-馮禹洪馮禹洪: vi編輯器的使用(續(xù))編輯器的使用(續(xù))進入插入模式的其他操作:按“O”:在光標所在的行的上面插入一行。按“o”:在光標所在的行的下面插入一行,從行首開始輸入文字。按“s”:刪除光標位置的一個字符,然后進入插入模式。按“S”:刪除光標所在的行,然后進入插入模式。13深圳大學深圳大學-馮禹洪馮禹洪: vivi編輯器的使用(續(xù))編輯器的使用(續(xù)) 命 令 行 模 式 控制屏幕光標的移動,字符、字或行的刪除,移動、復(fù)制某區(qū)域及進入插入模式,或者到末行模式。n用鍵盤上的光標來上下左右移動n用

10、小寫英文字母 “h”:光標左移一格 “j”:光標下移一格 “k”:光標上移一格 “l(fā)”,光標右移一格。 14深圳大學深圳大學-馮禹洪馮禹洪: Vi編輯器的使用編輯器的使用n光標的移動: 按Ctrl+b:屏幕往前移動一頁。 按Ctrl+f:屏幕往后移動一頁。 按Ctrl+u:屏幕往前移動半頁。 按Ctrl+d:屏幕往后移動半頁。 15深圳大學深圳大學-馮禹洪馮禹洪: vi編輯器的使用編輯器的使用n移動光標:按數(shù)字“0”或“” :光標移到所在行的行首。 按“G”:移動到文本的最后一行。按“$”:移動到光標所在行的行尾。 按“w”:光標跳到下個字的開頭。按“e”:光標跳到下個字的字尾。 按“b”:光

11、標回到上個字的開頭。16深圳大學深圳大學-馮禹洪馮禹洪: vi編輯器的使用編輯器的使用n刪除文字:“x”:每按一次,刪除光標所在位置的一個字符?!皀x”:例如,“6x”表示刪除光標所在位置開始的6個字符。 17深圳大學深圳大學-馮禹洪馮禹洪: vi編輯器的使用編輯器的使用n刪除文字:“X”:大寫的X,每按一次,刪除光標所在位置的前面一個字符?!皀X”:例如,“20X”表示刪除光標所在位置前面20個字符。 18深圳大學深圳大學-馮禹洪馮禹洪: vivi編輯器的使用編輯器的使用n刪除文字:“dd”:刪除光標所在行。 “ndd”:從光標所在行開始刪除n行。例如,“4dd”表示刪除從光標所在行開始的4

12、行字符。19深圳大學深圳大學-馮禹洪馮禹洪: vi編輯器的使用編輯器的使用n復(fù)制:“yw”:將光標所在之處到字尾的字符復(fù)制到緩沖區(qū)中。 “nyw”:復(fù)制n個字到緩沖區(qū)。 “yy”:復(fù)制光標所在行到緩沖區(qū)。 “nyy”:例如,“6yy”表示復(fù)制從光標所在行開始的6行字符。 “p”:將緩沖區(qū)內(nèi)的內(nèi)容寫到光標所在位置。20深圳大學深圳大學-馮禹洪馮禹洪: vi編輯器的使用(續(xù))編輯器的使用(續(xù))n替換:“r”:替換光標所在處的字符。 “R”:替換光標所到之處的字符,直到按 下“Esc”鍵為止。21深圳大學深圳大學-馮禹洪馮禹洪: 2. Vi編輯器的使用(續(xù))編輯器的使用(續(xù))撤銷上一次操作:“u”:

13、如果誤執(zhí)行一個命令,可以馬上按下“u”,回到上一個操作。按多次“u”可以執(zhí)行多次撤銷。22深圳大學深圳大學-馮禹洪馮禹洪: vivi編輯器的使用編輯器的使用 命 令 行 模 式 將文件保存保存或退出退出vi編輯器,也可以設(shè)置編輯設(shè)置編輯環(huán)境環(huán)境,如尋找字符串尋找字符串、列出行號列出行號等。 進入末行模式操作:先按“Esc”鍵確定已經(jīng)處于命令行模式后,再按冒號“:”即可進入末行模式。 23深圳大學深圳大學-馮禹洪馮禹洪: vi編輯器的使用編輯器的使用n查找字符操作:“/關(guān)鍵字”:先按“/”鍵,再輸入想查找的字符,如果第一次查找的關(guān)鍵字不是想要的,可以一直按“n”會往后查找下一個關(guān)鍵字?!?關(guān)鍵字

14、”:先按“?”鍵,再輸入想查找的字符,如果第一次查找的關(guān)鍵字不是想要的,可以一直按“n”往前查找下一個關(guān)鍵字。 24深圳大學深圳大學-馮禹洪馮禹洪: vivi編輯器的使用編輯器的使用n顯示行號::set numbern取消行號顯示:set nonumbern設(shè)置用戶模式:set showmoden設(shè)置文件只讀:set readonly25深圳大學深圳大學-馮禹洪馮禹洪: n替換字符串替換字符串l在一行內(nèi)替換頭一個字符串在一行內(nèi)替換頭一個字符串oldold為新的字符串為新的字符串newnew:s/old/newl在一行內(nèi)替換所有的字符串在一行內(nèi)替換所有的字符串oldold為新的字符串為新的字符串

15、newnew:s/old/new/gl在兩行內(nèi)替換所有的字符串在兩行內(nèi)替換所有的字符串oldold為新的字符串為新的字符串newnew:#,#s/old/new/gl在文件內(nèi)替換所有的字符串在文件內(nèi)替換所有的字符串oldold為新的字符串為新的字符串newnew:%s/old/new/gl進行全文替換時詢問用戶確認每個替換需添加進行全文替換時詢問用戶確認每個替換需添加c c選項選項:%s/old/new/gcvivi編輯器的使用編輯器的使用26深圳大學深圳大學-馮禹洪馮禹洪: vivi編輯器的使用編輯器的使用n保存文件:“w”離開vi編輯器操作:“q”:按“q”即退出vi,如果無法離開vi,可

16、以在“q”后跟一個“!”強制符離開vi。 “wq”:一般建議離開時,搭配“w”一起使用,這樣在退出的時候還可以保存文件。 27深圳大學深圳大學-馮禹洪馮禹洪: 3.一個簡單的一個簡單的Shell程序程序Shell程序就是放在一個文件中的一系列Linux命令和實用程序,在執(zhí)行的時候,通過Linux系統(tǒng)一個接著一個地解釋和執(zhí)行每個命令,這和Windows系統(tǒng)下的批處理程序非常相似。28深圳大學深圳大學-馮禹洪馮禹洪: Shell編程編程29深圳大學深圳大學-馮禹洪馮禹洪: shell編程簡介編程簡介n 腳本程序總是以腳本程序總是以 #!/bin/sh 開始開始它通知shell使用系統(tǒng)上的bash解

17、釋器#符號是注釋n 編輯好腳本以后,要使腳本程序運行,需要改變編輯好腳本以后,要使腳本程序運行,需要改變腳本程序的權(quán)限:腳本程序的權(quán)限:chmod +x filename30深圳大學深圳大學-馮禹洪馮禹洪: 一個簡單的一個簡單的Shell程序程序#!/bin/bash#!/bin/bash#filename:welcome#filename:welcomefirst()first() echo =echo =echo Hello!Everyone! Welcome to the Linux Shell Programming world.echo Hello!Everyone! Welcome

18、 to the Linux Shell Programming world.echo =echo = second()second() echo echo * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * firstfirstsecond second secondsecondfirstfirst31深圳大學深圳大學-馮禹洪馮禹洪: shell基礎(chǔ)編程基礎(chǔ)編程n 本地本地shell變量變量n 環(huán)境變

19、量環(huán)境變量32深圳大學深圳大學-馮禹洪馮禹洪: 本地本地ShellShell變量變量n本地變量在用戶現(xiàn)在的本地變量在用戶現(xiàn)在的shell shell 生命期的腳本中使用生命期的腳本中使用l這個值只在當前用戶生命期有意義l如果在shell啟動另一個進程或退出,此值將無效.33深圳大學深圳大學-馮禹洪馮禹洪: 本地本地ShellShell變量變量n本地變量在用戶現(xiàn)在的本地變量在用戶現(xiàn)在的shell shell 生命期的腳本中使用生命期的腳本中使用l這個值只在當前用戶生命期有意義l如果在shell啟動另一個進程或退出,此值將無效.n相應(yīng)的命令相應(yīng)的命令l顯示變量 echol清除變量 unsetl顯示

20、所有本地本地shellshell變量變量 setsetl結(jié)合變量值l測試變量是否已經(jīng)設(shè)置l使用變量來保存系統(tǒng)命令參數(shù)1. 設(shè)置只讀變量34深圳大學深圳大學-馮禹洪馮禹洪: 變量基本操作變量基本操作n 顯示變量顯示變量 - - 使用使用echoecho命令輸出單個變量的值命令輸出單個變量的值$HELLO=“Hello, World”$echo $HELLOn 清除變量清除變量 - - 使用使用unsetunset命令清除變量命令清除變量$unset variable-namen 顯示所有本地顯示所有本地shellshell變量變量$setn 將變量結(jié)合在一起將變量結(jié)合在一起$echo $vari

21、able-name1 $variable-name2$TMP_VAR1=“Hello, ”$TMP_VAR2=“World”$echo $TMP_VAR1 $TMP_VAR2Hello, World35深圳大學深圳大學-馮禹洪馮禹洪: 測試變量是否已經(jīng)設(shè)置測試變量是否已經(jīng)設(shè)置n 測試是否已設(shè)置或初始化變量,格式為:測試是否已設(shè)置或初始化變量,格式為:$variable:-valuen 如果設(shè)置了變量值且變量值非空,則使用它;如果未設(shè)如果設(shè)置了變量值且變量值非空,則使用它;如果未設(shè)置或變量值為空,則取新值。置或變量值為空,則取新值。$ COLOUR = blue$ echo “This colo

22、ur is $COLOUR:-green”This colour is blue$ unset COLOUR$ echo “This colour is $COLOUR: -green”This colour is green,$ echo $COLOURn 將將-換為換為=試一試試一試36深圳大學深圳大學-馮禹洪馮禹洪: 使用變量來保存系統(tǒng)命令參數(shù)使用變量來保存系統(tǒng)命令參數(shù)n 可以使用變量來保存系統(tǒng)命令參數(shù)的替換信息可以使用變量來保存系統(tǒng)命令參數(shù)的替換信息$SRC_FILE=/var/log/messages$DST_FILE=/var/log/messages.1$cp $SRC_FILE

23、 $DST_FILEn 如果想設(shè)置變量后不再改變其值,可以如果想設(shè)置變量后不再改變其值,可以將該變量設(shè)置成將該變量設(shè)置成只讀方式只讀方式$variable-name=value$readonly variable-namen 任何改變只讀變量值的操作都將返回錯誤信息。任何改變只讀變量值的操作都將返回錯誤信息。$MAXVAL=65535$echo $MAXVAL65535$readonly MAXVAL$MAXVAL=3276737深圳大學深圳大學-馮禹洪馮禹洪: 環(huán)境變量環(huán)境變量n環(huán)境變量用于所有用戶進程環(huán)境變量用于所有用戶進程( (經(jīng)常稱為子進程經(jīng)常稱為子進程) )l登陸進程為父進程lshe

24、ll中執(zhí)行的用戶進程均稱為子進程n環(huán)境變量的設(shè)置環(huán)境變量的設(shè)置l 在命令行中設(shè)置,用戶注銷時這些值將丟失l 在.bash_profile文件中定義.l 傳統(tǒng)上,所有環(huán)境變量均為大寫l 環(huán)境變量應(yīng)用于用戶進程前,必須用export命令導出38深圳大學深圳大學-馮禹洪馮禹洪: 設(shè)置環(huán)境變量設(shè)置環(huán)境變量export VARIABLE-NAME=value;n 環(huán)境變量配置有三種方法環(huán)境變量配置有三種方法l對所有用戶有效: 修改/etc/profile文件l僅對特定用戶有效:u修改特定用戶目錄下的.bashrc文件$vi .bashrc$source .bashrc登錄和每次打開新shell時候都會讀

25、取這個文件u修改用戶目錄下的.bash_profile文件當用戶登錄時候,該文件僅僅執(zhí)行一次u直接在shell下修改l系統(tǒng)環(huán)境變量設(shè)置:/etc/environment,只能使用絕對路徑,重啟有效39深圳大學深圳大學-馮禹洪馮禹洪: 顯示環(huán)境變量顯示環(huán)境變量n顯示環(huán)境變量與顯示本地變量一樣。顯示環(huán)境變量與顯示本地變量一樣。$ MYSHELL=bash$ export MYSHELL$ echo $ MYSHELL n使用使用env命令可以查看所有的環(huán)境變量。命令可以查看所有的環(huán)境變量。$ envn改變改變PATH:$ echo $ PATH$ PATH=$ PATH”:.”40深圳大學深圳大學

26、-馮禹洪馮禹洪: 清除環(huán)境變量清除環(huán)境變量n使用使用unset命令可以清除環(huán)境變量。命令可以清除環(huán)境變量。$ unset MYSHELL$ echo $ MYSHELL 41深圳大學深圳大學-馮禹洪馮禹洪: Shell變量變量像高級程序設(shè)計語言一樣,像高級程序設(shè)計語言一樣,ShellShell也提供說明也提供說明和使用變量的功能。對和使用變量的功能。對ShellShell來講,所有變量來講,所有變量的取值都是一個字符,的取值都是一個字符,ShellShell程序采用程序采用“$var”$var”的形式來引用名為的形式來引用名為varvar的變量的值。的變量的值。 42深圳大學深圳大學-馮禹洪馮

27、禹洪: Shell的環(huán)境變量的環(huán)境變量nHOME: HOME: 用戶的主目錄用戶的主目錄nPATHPATH:保存進行命令或腳本查找的目錄順序保存進行命令或腳本查找的目錄順序 $PATH=$HOME/bin:.:/bin:/usr:$PATH$export PATHnTERM:TERM:終端類型終端類型nUID:UID:當前用戶的當前用戶的IDIDnPWD:PWD:當前路徑名當前路徑名 nPS1PS1:基本提示符號,缺省超級用戶為:基本提示符號,缺省超級用戶為#,#,普通用戶為普通用戶為$ $PS1=“”$export PS1nPS2:PS2:附屬提示符,用于執(zhí)行多行命令或超過一行的命令附屬提示

28、符,用于執(zhí)行多行命令或超過一行的命令, ,缺缺省為省為 43深圳大學深圳大學-馮禹洪馮禹洪: 用戶自定義變量:用戶自定義變量:用戶可以按照下面的語法規(guī)則定義自己的變用戶可以按照下面的語法規(guī)則定義自己的變量:變量名量:變量名= =變量值變量值在定義變量時,變量名前不應(yīng)加符號在定義變量時,變量名前不應(yīng)加符號“$”$”;在引用變量的內(nèi)容時,則應(yīng)在變量名前加符在引用變量的內(nèi)容時,則應(yīng)在變量名前加符號號“$”$”。 44深圳大學深圳大學-馮禹洪馮禹洪: 位置參數(shù):位置參數(shù):位置參數(shù)是一種在調(diào)用位置參數(shù)是一種在調(diào)用ShellShell程序的命令行中按照各程序的命令行中按照各自的位置決定的變量,是在程序名之

29、后輸入的參數(shù)。自的位置決定的變量,是在程序名之后輸入的參數(shù)。位置參數(shù)之間用空格分隔,位置參數(shù)之間用空格分隔,ShellShell取第一個位置參數(shù)取第一個位置參數(shù)替換程序文件中的替換程序文件中的$1$1,第二個替換,第二個替換$2$2,依次類推。,依次類推。$0$0是一個特殊的變量,它的內(nèi)容是當前這個是一個特殊的變量,它的內(nèi)容是當前這個ShellShell程序程序的文件名,所以,的文件名,所以,$0$0不是一個位置參數(shù),在顯示當前不是一個位置參數(shù),在顯示當前所有的位置參數(shù)時是不包括所有的位置參數(shù)時是不包括$0$0的。的。 45深圳大學深圳大學-馮禹洪馮禹洪: 預(yù)定義變量:預(yù)定義變量:預(yù)定義變量和

30、環(huán)境變量相類似,也是在預(yù)定義變量和環(huán)境變量相類似,也是在ShellShell一開始時就定義了的變量。所不同的是,用一開始時就定義了的變量。所不同的是,用戶只能根據(jù)戶只能根據(jù)ShellShell的定義來使用這些變量,所的定義來使用這些變量,所有預(yù)定義變量都是由符號有預(yù)定義變量都是由符號“$”$”和另一個符號和另一個符號組成的。組成的。 46深圳大學深圳大學-馮禹洪馮禹洪: 預(yù)定義變量:預(yù)定義變量:常用的常用的ShellShell預(yù)定義變量如下。預(yù)定義變量如下。$#$#:位置參數(shù)的數(shù)量。:位置參數(shù)的數(shù)量。$ $* *:所有位置參數(shù)的內(nèi)容。:所有位置參數(shù)的內(nèi)容。$?$?:命令執(zhí)行后返回的狀態(tài)。:命令

31、執(zhí)行后返回的狀態(tài)。$:當前進程的進程號。:當前進程的進程號。$!$!:后臺運行的最后一個進程號。:后臺運行的最后一個進程號。$0$0:當前執(zhí)行的進程名。:當前執(zhí)行的進程名。 47深圳大學深圳大學-馮禹洪馮禹洪: Shell表達式表達式testtest是是ShellShell程序中的一個表達式,通過和程序中的一個表達式,通過和ShellShell提供的提供的ifif等條件語句相結(jié)合可以方便地測等條件語句相結(jié)合可以方便地測試字符串、文件狀態(tài)和數(shù)字。其語法如下:試字符串、文件狀態(tài)和數(shù)字。其語法如下: test test 表達式表達式 表達式所代表的操作符有字符串操作符、數(shù)字操表達式所代表的操作符有字

32、符串操作符、數(shù)字操作符、邏輯操作符以及文件操作符。作符、邏輯操作符以及文件操作符。 48深圳大學深圳大學-馮禹洪馮禹洪: 字符串比較:字符串比較:作用:測試字符串是否相等,長度是否為零,字符串作用:測試字符串是否相等,長度是否為零,字符串是否為是否為NULLNULL。常用的字符串比較符號如下。常用的字符串比較符號如下。= =:比較兩個字符串是否相同,相同則為:比較兩個字符串是否相同,相同則為“是是”。!=!=:比較兩個字符串是否相同,不同則為:比較兩個字符串是否相同,不同則為“是是”。-n-n:比較字符串的長度是否大于:比較字符串的長度是否大于0 0,如果大于,如果大于0 0則為則為“是是”。

33、-z-z:比較字符串的長度是否等于:比較字符串的長度是否等于0 0,如果等于,如果等于0 0則為則為“是是”。 49深圳大學深圳大學-馮禹洪馮禹洪: 50深圳大學深圳大學-馮禹洪馮禹洪: 數(shù)字比較:數(shù)字比較:testtest語句不使用語句不使用“?”?”類似的符號來表達大小的比較類似的符號來表達大小的比較,而是用整數(shù)來表示,常用的數(shù)字比較符號如下。,而是用整數(shù)來表示,常用的數(shù)字比較符號如下。 -eq-eq:相等。:相等。 -ge-ge:大于等于。:大于等于。 -le-le:小于等于。:小于等于。 -ne-ne:不等于。:不等于。 -gt-gt:大于。:大于。 -lt-lt:小于。:小于。51深

34、圳大學深圳大學-馮禹洪馮禹洪: 52深圳大學深圳大學-馮禹洪馮禹洪: 邏輯測試:邏輯測試:常用的邏輯測試符號如下。常用的邏輯測試符號如下。! !:與一個邏輯值相反的邏輯值。:與一個邏輯值相反的邏輯值。-a-a與(與(andand):兩個邏輯值都為):兩個邏輯值都為“是是”返回值返回值才為才為“是是”,反之為,反之為“否否”。-o-o或(或(oror):兩個邏輯值有一個為):兩個邏輯值有一個為“是是”,返回值就為返回值就為“是是”。53深圳大學深圳大學-馮禹洪馮禹洪: 文件操作:文件操作:文件測試表達式通常是為了測試文件的文件操作邏輯,測文件測試表達式通常是為了測試文件的文件操作邏輯,測試符號如

35、下。試符號如下。-d-d:對象存在且為目錄,則返回值為:對象存在且為目錄,則返回值為“是是”。-f-f:對象存在且為文件,則返回值為:對象存在且為文件,則返回值為“是是”。-L-L:對象存在且為符號連接,則返回值為:對象存在且為符號連接,則返回值為“是是”。-r-r:對象存在且可讀,則返回值為:對象存在且可讀,則返回值為“是是”。-s-s:對象存在且長度非:對象存在且長度非0 0,則返回值為,則返回值為“是是”。-w-w:對象存在且可寫,則返回值為:對象存在且可寫,則返回值為“是是”。-x-x:對象存在且可執(zhí)行,則返回值為:對象存在且可執(zhí)行,則返回值為“是是”。! !:測試條件的否定。:測試條

36、件的否定。54深圳大學深圳大學-馮禹洪馮禹洪: 55深圳大學深圳大學-馮禹洪馮禹洪: 56深圳大學深圳大學-馮禹洪馮禹洪: Shell流程控制語句流程控制語句和其他高級程序設(shè)計語言一樣,和其他高級程序設(shè)計語言一樣,ShellShell提供了提供了用來控制程序和執(zhí)行流程的命令,包括條件用來控制程序和執(zhí)行流程的命令,包括條件分支和循環(huán)結(jié)構(gòu),用戶可以用這些命令創(chuàng)建分支和循環(huán)結(jié)構(gòu),用戶可以用這些命令創(chuàng)建非常復(fù)雜的程序。非常復(fù)雜的程序。與傳統(tǒng)語言不同的是,與傳統(tǒng)語言不同的是,ShellShell用于指定條件值用于指定條件值的不是布爾運算式,而是命令和字符串。的不是布爾運算式,而是命令和字符串。 57深圳大學深圳大學-馮禹洪馮禹洪: 條件語句:條件語句:(1 1)if-then if-then 語句語句 if-thenif-then語句的語法如下:語句的語法如下: ifif命令行命令行1 1 then then 命令行命令行2 2 fi fi58深圳大學深圳大學-馮禹

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論