freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

shell基礎與編程技術講義-在線瀏覽

2025-04-14 17:16本頁面
  

【正文】 ? func( ) ? { echo Let39。如果需要還可被多次調用。通常函數的最后一個命令執(zhí)行后就退出被調函數。當 n值缺省時,則退出值是最后一個命令執(zhí)行后的退回值。 ? lower( ) 函數:將傳遞給它的文件里的字母轉換成小寫,并存放到同名的結尾為 .out的文件中。 ? usage_error ()函數:輸出程序的幫助信息。 ? 18 shell的命令組合 ? Linux系統(tǒng)可以把系統(tǒng)命令、應用程序和用戶程序有機地組合起來完成一系列任務。通過這些方法,用戶可以靈活高效地使用 shell控制linux系統(tǒng)的各種資源。管道的基本格式為: ? [應用程序 ][管道操作符 ][應用程序 ] ? 管道操作符是一個代表管道的專用字符“ |”。管道線實現了創(chuàng)建管道文件并重定向輸入輸出的功能。Linux系統(tǒng)的一串管道線是一個命令表,送回的值是該命令表中最后一個管道線的出口狀態(tài)。 表示條件為真( true)時執(zhí)行其后面的管道線。 表示前面的管道線在后臺執(zhí)行。 ? 輸入輸出重定向主要有以下幾種用法: ? 在標準管道重定向中,“ ”為輸入重定向,“ ”為輸出重定向,“ ”為追加輸出重定向。使用 進行標準輸出的重定向。 ? 當系統(tǒng)執(zhí)行 shell命令時,會自動打開 3個文件:標準輸入(文件描述字為 0),標準輸出(文件描述字為 1),標準錯誤輸出(文件描述字為 2)。如果用戶鍵入了一個命令,系統(tǒng)就會自動執(zhí)行該命令,并將結果送到屏幕上。 20 shell特殊字符 ? shell中的特殊字符,都有特定的含義,如通配符“ *”和“?”、管道線“ |”、單引號和雙引號等。 ? 通配符用于模式匹配,如文件名匹配、路徑名搜索、字符串查找等。如 f*可以匹配以 f開頭的任意字符串。 ? “]”匹配該字符組限定的任何一個字符。 ? “ !”表示不在一對方括號中列出的字符。在一個正則表達式中,可以同時使用“ *”和“?”。其形式和含義如下: ? *(模式表 ) 匹配給定模式表中“模式”的 0或多次出現,各模式之間以“ |”分開。 ? +(模式表 ) 匹配給定模式表中“模式”的 1次或多次出現,各模式之間以“ |”分開。 ? ?(模式表 ) 匹配模式表中任何一種“模式”的 0或 1次出現,各模式之間以“ |”分開。 ? (模式表 ) 僅匹配模式表中給定“模式”的一次出現。 ? 可以看出,模式表達式的定義是遞歸的,每個表達式中都可以包含一個或多個模式。 22 3. 引 號 在 shell中引號分為三種:單引號、雙引號和倒引號?!?$”表示變量替換,即用其后指定的變量的值來代替 $和變量;倒引號表示命令替換;僅當“ \”后面的字符是下述字符之一時,“ \”才是轉義字符,這些字符是:“ $”、“ `”、“ ”、“ \”或換行符。如: $ echo My current dir is `pwd` and logname is $LOGNAME My current dir is /home/mengqc and logname is mengqc 單引號中的字符都作為普通字符出現。The time is ` date ` , the file is $HOME/abc 39。執(zhí)行時先執(zhí)行該命令行,并以它的標準輸出結果取代整個倒引號部分。例如, $ echo current directory is ` pwd ` current directory is /home/mengqc 注釋: shell程序中以“ ”開頭的正文行都表示注釋。在執(zhí)行時注釋行被忽略。shell有環(huán)境變量和臨時變量之分。臨時變量是在 shell程序內部定義的,使用范圍僅限于程序內部,程序執(zhí)行結束就隨之消失了。第一次賦值及在 for循環(huán)頭部不用加 $符號; Bash中沒有浮點型變量,也沒有浮點運算; Bash整形變量的算術運算要經過 let或 expr語句處理。 ? 在變量之間的比較操作上,整數變量和字符串變量各不相同。比較字符串 a和 b是否相等就寫作: if [ $a = $b ],判斷字符串 a是否為空就寫作: if [ z $a ]。注意在“ [”和“ ]”符號的左右側必須留有空格。 24 用戶自定義變量 ? 變量和 shell是緊密相關的, bash有兩個基本的系統(tǒng)配置文件: /etc/bashrc和 /etc/profile。前者只在特定 shell中固定(如bash),后者可在不同 shell中固定。環(huán)境變量通過 shell命令設置,設置好的環(huán)境變量又可以被所有當前用戶運行的程序使用。 ? 用戶定義的變量是最普通的 shell變量。如 dir與 Dir是不同變量。變量名的長度不受限制。未賦值的變量僅含一個空串。例如 , ? $ dir=/usr/meng/ff ? 則命令行 $ echo $dir 的顯示結果為: ? /usr/meng/ff ? 如果在賦值變量中包含空格、制表符或換行符,那么就應該用雙引號把這個字符串括起來。有兩種替換方式:使用倒引號或小括號引用命令。如果對該變量進行整數運算,就可以被解釋為整數;如果進行字符串操作,它就被看作為字符串。整數運算一般通過 let和 expr指令來實現,如對變量 x加 1可以寫作: let x = $x + 1 或者 x=`expr $x + 1`。Bash變量首次被賦初值時加上 local關鍵字就可以聲明為局部變量,如: ? !/bin/bash ? HELLO=var1 ? echo $HELLO ? function hello { ? local HELLO=var2 ? echo $HELLO ? } ? echo $HELLO ? 該程序的執(zhí)行結果是: ? var1 ? var2 ? var1 ? 這個執(zhí)行結果表明全局變量 $HELLO的值在執(zhí)行函數 hello時并沒有改變,表明局部變量 $HELLO的作用域在于函數的程序塊中。 ? 在前 5個選項中用來聲明變量并設置變量的屬性 ([rixa]即為變量的屬性),在第 6個選項中用來顯示 shell函數。參數 用來指定變量的屬性, +則取消變量所設的屬性。 29 數組變量 bash只提供一維數組,數組的大小沒有限定。獲取數組中的元素要利用下標。可用賦值語句對數組賦值。 【 例 】 $ city[0]=Beijing or $ city[1]=Shanghai 用 declare顯式聲明數組形式是: declare a 數組名 讀取數組元素值的一般格式是: ${數組名 [下標 ]} 【 例 】 $ echo ${city[0]} Beijing 數組元素可單獨逐個賦值或組合賦值。如: $ A=(this is an shell example script) $ echo ${A[*]} 則顯示的結果為: $ this is an shell example script $ echo ${A[6]} 由于數組初值有 6個,所以 A元素個數是 6。數組名表示下標為 0的數組元素,如 city就等價于 city[0]。 30 變量的引用 ? 在 bash中,有效的變量引用表達式有以下幾種形式: ? $name ${namepattern} ? ${name} ${namepattern} ? ${name[n]} ${name % pattern} ? ${name[*]} ${name %% pattern} ? ${name []} ${} ? ${name:word} ${$*} ? ${name:=word} ${ name } ? ${name:?word} ${ name[*]} ? ${name:+word} ${name[]} 31 這些不同形式的意義解釋 表達式 $name表示變量 name的值,若未定義,則用空值替換。用花括號括起 name,是把變量名與后面字符分隔開,避免混淆。 ${name[n]}表示數組變量 name中第 n個元素的值。用雙引號括起來時, ${name[*]}被擴展成字符串,各數組元素以空格分開;而 ${name[]}被擴展成多個詞,每個數組元素是一個詞。 表達式 ${namepattern}和 ${namepattern},如果 pattern(表示匹配模式 )與name值的開頭匹配,那么 name的值去掉匹配部分后的結果就是該表達式的值 。在第一種格式中, name值去掉的部分是與 pattern匹配的最少的部分;而第二種格式中, name值去掉的部分是與 pattern匹配的最多的部分。在第一種格式中,去掉的部分是最少的匹配部分;而第二種格式中,去掉的部分是最多的匹配部分。 表達式 ${name[i]}的值是數組 name第 i個元素值的長度。 32 鍵盤輸入變量 ? 利用 read命令可從鍵盤讀數據賦給指定變量。例如: ? read a b c ? 輸入數據時,數據間以空格或制表符分隔。 33 位置變量 ? 在執(zhí)行 linux命令或 shell腳本時可以用實參替代位置變量,它們的名稱很特別,分別是 0、 2……9 。命令行實參與腳本中位置變量的對應關系如下: ? m c1 c2 c3 c4 …… c10 c11…… ? $0 $1 $2 $3 $4 …… ${10} ${11}…… ? 【例】 ? $ set `pwd。date` ? $ echo $1 $2 $3 $9 ${10} ${11} ? /home/mengqc bash_1 ex1 12 3 21:52:32 ? 在 cygwin中的應用情況見圖 。但是,實際給定的命令行參數有可能超過 9個,此時就要用 shift命令移動位置參數。 ? 表 位置變量的 shift對應關系 ? 命令行 Ex7ABCDEF原位置參數 $0$1$2$3$4$5$6新位置參數 $0$1$2$3$4$5表 。 shift命令不能將 $0移走,所以經 shift右移后, $0的值不會變化,見圖 。下面給出這些特殊變量的表示形式及意義。 $?上一條命令執(zhí)行后的返回值(也稱為“退出碼”),是一個十進制數。 圖 shift右移位置參數的變化情況 $$ 當前進程的進程號。 $ 由當前 shell設置的執(zhí)行標志名組成的字符串。 $*表示命令行中實際給出的所有實參字符串,不限于 9個實參。 $ 0 :保存程序名。 PATH變量含帶冒號符的字符串。 TERM是指終端類型。 參數置換變量的一般形式是:變量 2=$ {變量 1 op 字符串 } 其中 op表示操作符,它可以是下列四個操作符之一“:: ”、“: =” 、“ : +” 和“ : ?”。在操作符的前后不要留空格。除 ++、 和逗號 (, )之外,所有整型運算符都能支持。命名的參數可以在算術表達式中直接利用名稱訪問,前面不帶“ $”符號。算術表達式按長整數進行求值,不檢查溢出。 let 命令的替代表示形式是: ((算術表達式 )) 例如, let ″j=i*6+2″等價于 ((j=i*6+2))。當表達式中有 shell的特殊字符時,必須用雙引號將其括起來。如果不括起來, shell會把命令行 let val=a|b中的“ |”看成管道符,將其左右兩邊看成不同的命令,因而無法正確計算表達式的值。 ? 測試語句 test ? 條件測試有三種常用形式:一是 test命令,二是一對方括號,這兩種形式是完全等價的。 test命令可以和多種系統(tǒng)運算符一起使用,這些運算符可以分為四類:文件屬性及權限測試運算符、字符串測試運算符、數值測試運算符和邏輯運算符。 39 test測試命令用法 ? Test命令用于檢查某個條件是否成立,它可以進行數值、字符和文件三個方面的測試,其測試符和相應的功能分別如表 。 ? Linux還提供了與 (“!”)、或(“ o”)、非(“ a”)三個邏輯操作符用于將測試條件連接起來,其優(yōu)先級為:“!”最高,“ a”次之,“ o”最低。若 test expression或者[ expression ]的結果為真,則返回 0,否則非 0。 40 字符串比較 ? 字符串比較可以測試字符串長度是否為 0以及兩個字符串是否相等。 ? 【 例 】 判斷兩個字符串是否相同。 ? 使用 test測試字符串時要注意的問題:向 test傳遞的各自變量間必須有空白符,如果“ =”與任一自變量之間沒有空白字符就會產生錯誤。 41 數字比較 ? test 命令可以用來比較整數。 ? 【例】 ? $ x1=” 005” ? $ x2=” 10” ? $ test “ $x1” = 5 ? $ echo $? ? 1 ? 【例】 把 005 , 5當作字符串來看待。 42 文件測試 ? 文件測試表達式測試一個文件是否滿足特殊條件,其通用語法是: ? test option name或者 [ option nam
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1