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

正文內(nèi)容

shell基礎(chǔ)與編程技術(shù)講義(留存版)

2025-04-12 17:16上一頁面

下一頁面
  

【正文】 將列出所有當(dāng)前定義的環(huán)境變量。開頭,有時不是。行添加到用戶 39。表 bash為例列出常用的內(nèi)部命令。 ? 函數(shù)的規(guī)則是先定義后使用。 ? 18 shell的命令組合 ? Linux系統(tǒng)可以把系統(tǒng)命令、應(yīng)用程序和用戶程序有機(jī)地組合起來完成一系列任務(wù)。使用 進(jìn)行標(biāo)準(zhǔn)輸出的重定向。在一個正則表達(dá)式中,可以同時使用“ *”和“?”。如: $ echo My current dir is `pwd` and logname is $LOGNAME My current dir is /home/mengqc and logname is mengqc 單引號中的字符都作為普通字符出現(xiàn)。 ? 在變量之間的比較操作上,整數(shù)變量和字符串變量各不相同。變量名的長度不受限制。參數(shù) 用來指定變量的屬性, +則取消變量所設(shè)的屬性。用花括號括起 name,是把變量名與后面字符分隔開,避免混淆。例如: ? read a b c ? 輸入數(shù)據(jù)時,數(shù)據(jù)間以空格或制表符分隔。 $?上一條命令執(zhí)行后的返回值(也稱為“退出碼”),是一個十進(jìn)制數(shù)。在操作符的前后不要留空格。 test命令可以和多種系統(tǒng)運(yùn)算符一起使用,這些運(yùn)算符可以分為四類:文件屬性及權(quán)限測試運(yùn)算符、字符串測試運(yùn)算符、數(shù)值測試運(yùn)算符和邏輯運(yùn)算符。 ? 【例】 ? $ x1=” 005” ? $ x2=” 10” ? $ test “ $x1” = 5 ? $ echo $? ? 1 ? 【例】 把 005 , 5當(dāng)作字符串來看待。 44 【 例 】 當(dāng)用戶將某文件作為設(shè)定文件時,先檢查是否存在,然后將該文件的設(shè)定值載入。此語句的基本形式結(jié)構(gòu)為: ? case 變量 in ? 選項(xiàng) 1) 命令表 1;; ? … ? 選項(xiàng) n) 命令表 n;; ? esac ? 在 case語句中,每個選擇中的命令表都以“;;”結(jié)束,表示跳出開關(guān)語句,最后一個“;;”可省略。 ? !/bin/sh ? FILES=`ls /txt/*.txt` ? for txt in $FILES 。 ? $ cat square2 ? i=1 ? until test “$i” –gt 9 ? do ? s=`expr $i \* $i` ? echo “$i $s” ? i=`expr $i + 1` ? done 58 循環(huán)控制命令 break和 continue ? Bash中的 break和 continue語句, 作用和用法和 C語言中相同。接收用戶的輸入,并且將輸入的值存放在特定變量里 . ? if [ $res= y o $res= Y] ? then ? break 。語法檢查命令的基本格式為: ? sh –n 文件名 或 set –n 63 【 例 】 對下面的文件名為 t2的 shell腳本進(jìn)行語法檢查。 66 【 例 】 分析對于下面的程序 t4的詳細(xì)跟蹤與跟蹤執(zhí)行的情況 ? b=“005” ? test “$b” –eq 5 ? echo $? ? 詳細(xì)跟蹤命令: $sh –v t4 ? 跟蹤執(zhí)行命令: $sh –x t4 ? 詳細(xì)跟蹤與跟蹤執(zhí)行的組合情況: ? $sh –vx t4 ? b=“005” ? +b=005 ? test “$b” –eq 5 ? +test ?005? –eq 5 ? echo $? ? +echo 0 ? 0 ? 所有這些選項(xiàng)也可以在一個 shell程序內(nèi)部用“ set 選項(xiàng)”的形式引用,而“ set +選項(xiàng)”將禁止該選項(xiàng)起作用。在 trap中可以定義對信號 0的處理(實(shí)際上無此信號), shell程序在其終止(如執(zhí)行 exit)時發(fā)該信號。對于/bin、 /sbin、 /usr/bin、 /usr/sbin、 /usr/X11R6/bin等系統(tǒng)文件目錄可不備份。 31m39。 39。1。用環(huán)境變量 $?檢查用戶是否選擇了 yes。 ? !/bin/sh ? Ask some questions and collect the answer ? filename: ? dialog title 1: Questionnaire msgbox Wele to my simple survey 9 18 ? 先通過顯示一個簡單對話框告訴用戶發(fā)生的事情。36m39。1。 39。不要將 /tmp放進(jìn)DIRS中,這樣會自身重復(fù)備份,導(dǎo)致硬盤空間溢出錯誤。 signallist ? trap “mands39。 ? ( 2)局部跟蹤執(zhí)行: set –x用于設(shè)置跟蹤標(biāo)志; set +x用于關(guān)閉跟蹤標(biāo)志。 ? foreach num ( $ *) ? repeat $num echo n * ? echo ? end 本程序的運(yùn)行結(jié)果見圖 。 select的功能是自動生成一個簡單的文本菜單。 ? while [ $1 ] ? do ? if [ f $1 ] ? then echo display : $1 ? cat $1 ? else echo $1 is not a file name . ? fi ? shift ? done 本程序的運(yùn)行結(jié)果如圖 。 ? !/bin/bash ? for day in Sun Mon Tue Wed Thu Fri Sat ? do ? echo $day ? done 【 例 】 分析下面的這個程序。 ? esac ? exit 0 ? 其中第四行的 read Keypress的 read語句是從鍵盤讀輸入。連用結(jié)構(gòu)如下: ? if 表達(dá)式 1; then 命令表 1 ? else if 表達(dá)式 2。 ? 使用 test測試字符串時要注意的問題:向 test傳遞的各自變量間必須有空白符,如果“ =”與任一自變量之間沒有空白字符就會產(chǎn)生錯誤。如果不括起來, shell會把命令行 let val=a|b中的“ |”看成管道符,將其左右兩邊看成不同的命令,因而無法正確計(jì)算表達(dá)式的值。 TERM是指終端類型。 shift命令不能將 $0移走,所以經(jīng) shift右移后, $0的值不會變化,見圖 。 表達(dá)式 ${name[i]}的值是數(shù)組 name第 i個元素值的長度。數(shù)組名表示下標(biāo)為 0的數(shù)組元素,如 city就等價于 city[0]。Bash變量首次被賦初值時加上 local關(guān)鍵字就可以聲明為局部變量,如: ? !/bin/bash ? HELLO=var1 ? echo $HELLO ? function hello { ? local HELLO=var2 ? echo $HELLO ? } ? echo $HELLO ? 該程序的執(zhí)行結(jié)果是: ? var1 ? var2 ? var1 ? 這個執(zhí)行結(jié)果表明全局變量 $HELLO的值在執(zhí)行函數(shù) hello時并沒有改變,表明局部變量 $HELLO的作用域在于函數(shù)的程序塊中。 ? 用戶定義的變量是最普通的 shell變量。臨時變量是在 shell程序內(nèi)部定義的,使用范圍僅限于程序內(nèi)部,程序執(zhí)行結(jié)束就隨之消失了。 22 3. 引 號 在 shell中引號分為三種:單引號、雙引號和倒引號。 ? “]”匹配該字符組限定的任何一個字符。 表示前面的管道線在后臺執(zhí)行。 ? lower( ) 函數(shù):將傳遞給它的文件里的字母轉(zhuǎn)換成小寫,并存放到同名的結(jié)尾為 .out的文件中。不同之處在于它是多進(jìn)程。這些命令分為內(nèi)部命令和外部命令兩類。因?yàn)橛脩舳x的是局部環(huán)境變量。$pAtH39。$PATH39。 在 man bash中的 39。/etc/39。 39。程序最好以“ !/bin/sh”為開始的第一行。一是參數(shù)可以為任意字符串,多數(shù)情況下字符串不用引號;二是參數(shù)表不用括號,各參數(shù)之間也不用逗號分隔。 ? 要知道所用的 linux有哪些版本的 shell,可以查看 /etc/shell目錄下的文件。 ? 改變腳本文件成為可執(zhí)行文件屬性的命令行的寫法是: ? $chmod +x myprogram 或 $chmod 755 myprogram ? 最后,執(zhí)行該程序的命令行寫法是: ? $./myprogram 或 $ bash myprogram ? 回車就可以看到程序的執(zhí)行結(jié)果: ? hello world. ? my first shell program. 7 ? 在 shell編程時,以 開頭的句子表示這一行為注釋。 8 ( 1) bash 配置文件 ? 在用戶的 home目錄下,運(yùn)行命令: ? $ls .bash* ? 將會看到這些文件: ? .bash_history :記錄了用戶以前輸入的命令。用戶通過 $PS1設(shè)置提示符。~/.bashrc39。用戶看到的環(huán)境變量在 shell配置文件中的定義,可能是用戶自己的配置文件,也可能是由 root通過 39。當(dāng)設(shè)置一個變量時,用戶直接用名稱而不需要加 39。.bash_profile39。 13 14 外部命令 ? shell除去內(nèi)部命令以外的命令被稱為外部命令或程序。調(diào)用函數(shù)時直接利用函數(shù)名,不帶圓括號,與一般命令同樣使用。 shell通過管道、輸入輸出重定向以及程序設(shè)計(jì)的方法來實(shí)現(xiàn)這一功能。如: “應(yīng)用程序 2”命令就是把應(yīng)用程序的輸出重定向到標(biāo)準(zhǔn)錯誤輸出中。 21 2. 模式表達(dá)式 ? 模式表達(dá)式是包含一個或多個通配符的字符序列。例如, $ echo 39。判斷整數(shù) a和 b是否相等就寫做 if [ $a = $b ],判斷整數(shù) a是否大于整數(shù) b就寫做 if [ $a gt $b ]。定義變量并賦值的一般形式是:變量名 =字符串 ? 例如: myfile=/usr/meng/ff/ 25 ? 變量值的改變,只須利用賦值語句重新賦值。 ? !/bin/bash ? declare i a=2 ? declare i b=3 ? declare i c=$a+$b ? echo $c ? 這樣出來的結(jié)果才能是 5。替換后花括號被取消。如果變量個數(shù)與給定數(shù)據(jù)個數(shù)相同,則依次對應(yīng)賦值;如果變量個數(shù)少于數(shù)據(jù)個數(shù),則從左至右對應(yīng)賦值,但最后一個變量被賦予剩余的所有數(shù)據(jù);如果變量個數(shù)多于給定數(shù)據(jù)個數(shù),則依次對應(yīng)賦值,而沒有數(shù)據(jù)與之對應(yīng)的變量取空串。多數(shù) shell命令執(zhí)行成功時,返回值為 0;執(zhí)行失敗則返回非 0值。 37 算術(shù)運(yùn)算 bash中的整數(shù)算術(shù)運(yùn)算命令是 let,其語法格式為: let arg … 其中 arg是單獨(dú)的算術(shù)表達(dá)式,使用的是 C語言中表達(dá)式的語法、優(yōu)先級和結(jié)合性。與傳統(tǒng)語言不同, shell用于指定條件值的不是布爾表達(dá)式而是命令和字符串。當(dāng)使用整數(shù)比較操作符時,把 005, 5當(dāng)作整數(shù)來看待,整數(shù)的 005和 5是相等的。 ? Filename : /etc/ppp/settings ? PHONE=1800COLLECT ? !/bin/sh ? Filename : phonebill ? if [ f /etc/ppp/settings ] 。 48 49 50 循環(huán)語句 for ? shell中有 for、 while和 until三種循環(huán)語句。 do ? doc=`echo $txt | sed s/.txt/.doc/` ? mv $txt $doc ? done ? 這樣可以將 *.txt文件修改成 *.doc文件。 break語句讓程序流程從當(dāng)前循環(huán)體中完全跳出 , 而continue語句則跳出當(dāng)次循環(huán)直接進(jìn)入下一次循環(huán)。用于退出 while, for, select等循環(huán)語句 ? fi ? done ? select name [ in word。 ? a=1 ? if [ a = 1 ] ? echo $a ? fi ? 用語法檢查命令檢查該程序: ? $ sh n t2 ? 則屏幕上顯示: ? t2: line 4 :syntax error near unexpected token ?fi? ? t2 :line 4 :?fi? ? 檢查命令在試圖讀第 4行時,發(fā)現(xiàn)‘ if’語句沒有正確結(jié)束。 67 5. 腳本調(diào)試 ? 基本格式: sh –nvx ? 其中 n 檢查語法錯誤,不執(zhí)行; v 執(zhí)行前先顯示代碼; x 執(zhí)行后顯示用到的代碼。在捕捉到 signal list中指定的信號并執(zhí)行完相應(yīng)的命令后,如果這些命令沒有將 shell程序終止, shell將繼續(xù)執(zhí)行受到信號時執(zhí)行命令后面的命令,但容易導(dǎo)致shell程序無法終止。 ? 通過簡單的 shell腳本程序配合 cron定時工具,就把原本耗費(fèi)多時的人工備份工作,簡化到幾分鐘的自動工作,提高了效率和可靠性。 39。1。37m39。若用戶不繼續(xù)就退出。 then ? dialog msgbox
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1