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

正文內(nèi)容

shell基礎(chǔ)與編程技術(shù)講義-閱讀頁

2025-03-23 17:16本頁面
  

【正文】 e ] ? 其中 name 是文件的名字或目錄的名字, option和測試的結(jié)果如下所示: ? 【 例 】 檢查指定的 name是否為目錄 ? $ test –d /home ? $ echo $? ? 0 ? 當一個 shell命令或程序執(zhí)行成功時,返回 0;如果執(zhí)行失敗,則返回非 0。 true的返回值為 0,而 false的返回值為非 0。 ? 如果命令行是由幾個應(yīng)用程序和管道操作符組成的命令表,則整個命令行的返回值是該命令表中的最后一個應(yīng)用程序的返回值。根據(jù)對條件的判斷來決定執(zhí)行哪一組命令。如果用戶希望在表達式返回的值為假時,不退出 if而轉(zhuǎn)去執(zhí)行其他命令表,可以使用 if語句的完整結(jié)構(gòu),如下所示: ? if 表達式 then 命令表 1 else 命令表 2 fi ? 該語句先執(zhí)行表達式,若表達式值為真則執(zhí)行命令表 1,否則執(zhí)行命令表 2。連用結(jié)構(gòu)如下: ? if 表達式 1; then 命令表 1 ? else if 表達式 2。 then 命令表 3 ? else 命令表 4 ? fi fi fi ? 這是一個 if語句的三重結(jié)構(gòu),還可以有更多重的復(fù)雜結(jié)構(gòu)。 44 【 例 】 當用戶將某文件作為設(shè)定文件時,先檢查是否存在,然后將該文件的設(shè)定值載入。 then ? source /etc/ppp/settings ? echo $PHONE ? fi ? 執(zhí)行結(jié)果情況: ? [foxmanfoxman ppp] ./phonebill ? 1800COLLECT 45 【 例 】 如果某個設(shè)定文件允許有好幾個位置的話,例如crontab,可利用 if then elif fi來找尋。 then ? CRONTAB=/etc/crontab ? elif [ f /var/spool/cron/crontabs/root ] 。 then ? CRONTAB=/var/cron/tabs/root ? fi ? export CRONTAB 46 開關(guān)語句 case ? Bash中的 case結(jié)構(gòu)與 C語言中 switch功能相似,用于多分支控制。 ? !/bin/bash ? echo Hit a key, then hit return. ? read Keypress ? case $Keypress in ? [az] ) echo Lowercase letter。 ? [09] ) echo Digit。 ? esac ? exit 0 ? 其中第四行的 read Keypress的 read語句是從鍵盤讀輸入。結(jié)果匹配就轉(zhuǎn)到相應(yīng)的命令表,直至遇到兩個分號為止。此語句的基本形式結(jié)構(gòu)為: ? case 變量 in ? 選項 1) 命令表 1;; ? … ? 選項 n) 命令表 n;; ? esac ? 在 case語句中,每個選擇中的命令表都以“;;”結(jié)束,表示跳出開關(guān)語句,最后一個“;;”可省略。 for結(jié)構(gòu)與 C語言中有所不同,針對的是一組命令進行多次執(zhí)行的循環(huán)體。變量表中是取值范圍和循環(huán)執(zhí)行次數(shù)。當執(zhí)行循環(huán)時,系統(tǒng)依次把變量表中的變量賦給變量,然后執(zhí)行命令表,直到變量表中的所有變量都執(zhí)行一遍為止。如果省略了 in,則變量 var取值是位置變量。 【例】 在屏幕上打出 1~ 7這七個數(shù)字。 ? !/bin/bash ? for day in Sun Mon Tue Wed Thu Fri Sat ? do ? echo $day ? done 【 例 】 分析下面的這個程序。 53 【 例 】 修改文件類型名。 ? !/bin/sh ? FILES=`ls /txt/*.txt` ? for txt in $FILES 。 【 例 】 catmore實現(xiàn)多文件內(nèi)容顯示。 do ? cat $i ? done ? 當用戶輸入 catmore file1 file2 ...時,其作用就跟 cat file1 file2 ...一樣。 ? !/bin/sh ? Filename : listbin ? for i in /bin/* 。 ? for i in /etc/$*。如果是普通文件顯示其內(nèi)容;否則顯示“不是文件名”。 ? while [ $1 ] ? do ? if [ f $1 ] ? then echo display : $1 ? cat $1 ? else echo $1 is not a file name . ? fi ? shift ? done 本程序的運行結(jié)果如圖 。當條件為假時,進入循環(huán)體,直至測試條件為真時才退出循環(huán)。 ? $ 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語言中相同。這兩個語句都必須放在 do和 done之間有效。當執(zhí)行 break命令時,控制流從循環(huán)體中轉(zhuǎn)移到 done之后的第一條命令上。 ? continue也是 shell的內(nèi)部命令,其格式為 continue或continue n。當執(zhí)行 continue命令時,控制流從本次循環(huán)直接轉(zhuǎn)到下一次循環(huán)。 59 流程控制 select ? select語句是 pdksh提供的一個獨特的循環(huán)語句,不同于前面介紹的循環(huán)語句。 select的功能是自動生成一個簡單的文本菜單。 list_of_items既可以是一個包含多個選項的變量,也可以是直接列在程序中的一組選項。接收用戶的輸入,并且將輸入的值存放在特定變量里 . ? if [ $res= y o $res= Y] ? then ? break 。 ] do list 。與 for相同,如果 [in word。 61 shift語句和 repeat語句 ? bash和 tcsh都支持 shift命令。例如位置變量當前值為 : ? $1=file1 $2=file2 $3=file3 ? 執(zhí)行一次 shift命令后,位置變量的值為 : ? $1=file2 $2=file3 ? 還可以在 shift命令中指定位置變量轉(zhuǎn)移的次數(shù), 如 : shift n。使用 repeat要求 shell對一個命令執(zhí)行一定的次數(shù)。 ? foreach num ( $ *) ? repeat $num echo n * ? echo ? end 本程序的運行結(jié)果見圖 。 shell提供了幾種對程序調(diào)試的命令,可以觀察程序的執(zhí)行,或程序在不做任何實際處理情況下是如何被“執(zhí)行”的。語法檢查命令的基本格式為: ? sh –n 文件名 或 set –n 63 【 例 】 對下面的文件名為 t2的 shell腳本進行語法檢查。因為第 2行的 if語句沒有用 then語句正確結(jié)束。then ? 再用語法檢查命令檢查該程序,就沒有語法錯誤了。命令行被讀入后, shell按讀入時的形式在標準輸出中顯示該命令行,然后執(zhí)行命令行。 ? ( 2)局部跟蹤執(zhí)行: set –v用于設(shè)置跟蹤標志; set +v用于關(guān)閉跟蹤標志。它使命令行在執(zhí)行前完成所有替換,在標準輸出中顯示每一個被替換后的命令行,并且在行前加前綴符號“+”,然后執(zhí)行該命令。 ? ( 2)局部跟蹤執(zhí)行: set –x用于設(shè)置跟蹤標志; set +x用于關(guān)閉跟蹤標志。 ? ( 2)局部跟蹤執(zhí)行: set –vx設(shè)置跟蹤標志; set +vx關(guān)閉跟蹤標志。 66 【 例 】 分析對于下面的程序 t4的詳細跟蹤與跟蹤執(zhí)行的情況 ? b=“005” ? test “$b” –eq 5 ? echo $? ? 詳細跟蹤命令: $sh –v t4 ? 跟蹤執(zhí)行命令: $sh –x t4 ? 詳細跟蹤與跟蹤執(zhí)行的組合情況: ? $sh –vx t4 ? b=“005” ? +b=005 ? test “$b” –eq 5 ? +test ?005? –eq 5 ? echo $? ? +echo 0 ? 0 ? 所有這些選項也可以在一個 shell程序內(nèi)部用“ set 選項”的形式引用,而“ set +選項”將禁止該選項起作用。調(diào)用 shell 的形式是: ? sh 選項 程序名 ? 其中選項是: n讀入命令但不執(zhí)行。 x執(zhí)行命令時把命令和它們的參數(shù)顯示出來。 68 6. 信號與 trap ? 當?shù)玫叫盘柕臅r候怎么辦,具體的信號可以用 trap l來看。 ? trap命令用于在 shell程序中捕捉到信號,然后采取三種不同的反應(yīng): ? ( 1)執(zhí)行一段程序來處理這一信號。 ? trap 39。 signallist ? trap “mands39。 ? trap signallist 69 ? ( 3)忽略這一信號。在 trap中可以定義對信號 0的處理(實際上無此信號), shell程序在其終止(如執(zhí)行 exit)時發(fā)該信號。 ? 在 trap語句中,單引號和雙引號不同,當 shell第一次碰到trap語句時將把 mands中命令掃描一遍。 70 shell編程綜合范例 ? 利用 shell Script搭配 crond可以完成定期的工作。 tar及 gzip是最基本的。用戶也可以用 bzip zip等壓縮工具來進行壓縮,但 tar配合 gzip是最普遍最方便的組合方式。 ? 也可以分兩步完成 :tar r file/dir ... f gzip 9 ? tar r file/dir ... f 和 gzip 9 。不要將 /tmp放進DIRS中,這樣會自身重復(fù)備份,導(dǎo)致硬盤空間溢出錯誤。 ? 解壓時,請用 gzip dc /tmp/ | tar xv指令完成,或 ? tar xvfz /tmp/。對于/bin、 /sbin、 /usr/bin、 /usr/sbin、 /usr/X11R6/bin等系統(tǒng)文件目錄可不備份。 72 終端顏色搭配的 color腳本 ? !/bin/bash ? filename:bashcolor ? This file echoes a bunch of color codes to the terminal to demonstrate what39。gYw39。 ? for FGs in 39。 39。 39。 39。30m39。 31m39。1。 39。 \ ? 39。32m39。 33m39。1。 39。 39。34m39。 35m39。1。 \ ? 39。 39。36m39。 37m39。1。 ? do FG=${FGs// /} ? echo en $FGs \033[$FG $T ? for BG in 40m 41m 42m 43m 44m 45m 46m 47m。 ? done ? echo。這時的提示符會變成: user_name: /usr/bin$ ? 可通過命令 export測試不同的設(shè)置(比如, export PS1=\u: \w\\$ )。通過選擇不同的選項得到不同的結(jié)果,采用幾個圖形函數(shù)實現(xiàn)了交互功能。 then ? dialog infobox Thank you anyway 5 20 ? sleep 2 ? dialog clear ? exit 0 ? fi 75 ? dialog title Questionnaire inputbox Please enter your name 9 30 2 ? Q_NAME=$(cat ) ? dialog menu $Q_NAME,? 15 30 4 1 Classical 2 Jazz 3 Country 4 Other 2 ? Q_MUSIC=$(cat ) ? if [ $Q_MUSIC == 1 ] 。 ? !/bin/sh ? Ask some questions and collect the answer ? filename: ? dialog title 1: Questionnaire msgbox Wele to my simple survey 9 18 ? 先通過顯示一個簡單對話框告訴用戶發(fā)生的事情。 77 2. 確認框的使用 ? dialog title 2: Confirm yesno Are you willing to take part? 9 18 ? if [ $? != 0 ] 。用環(huán)境變量 $?檢查用戶是否選擇了 yes。圖 yes和 no的選擇結(jié)果圖。圖
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1