日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

對話 UNIX,第 6 部分: 通過腳本實現(xiàn)操作的自動化( 四 )


shift 命令從左到右刪除位置參數(shù) 。例如 , 如果命令行為 myrm, -r -f -P file1 file2 file3 , 則 shift 3 將分別刪除 $0、$1 和 $2 , 或 -r、-f 和 -P 。file1、file2 和 file3 將被重新編號為 $0、$1 和 $2 。
case 語句的工作方式與傳統(tǒng)編程語言中的對應(yīng)結(jié)構(gòu)相似 。它將其參數(shù)與列表中的每個模式比較;當(dāng)找到匹配項時 , 則執(zhí)行對應(yīng)的代碼 。與在 Shell 中非常類似 , * 匹配所有條目 , 并且可用作在未找到其他匹配項時的缺省操作 。
特殊符號 $@ 展開為所有(其余)的位置參數(shù) 。
zsh 操作符 $= 在空白邊界處拆分單詞 。當(dāng)您有一個非常長的字符串 , 并且希望將該字符串拆分為各個參數(shù)時 , $= 是非常有用的 。例如 , 如果變量 x 包含字符串 '-r -f'——這是一個具有五個字符的單詞——$=x 將變?yōu)閮蓚€單獨的單詞 -r 和 -f 。
給出這些解釋之后 , 您現(xiàn)在應(yīng)該能夠詳細(xì)分析該腳本了 。下面讓我們逐塊地研究一下該代碼:
第一個塊設(shè)置整個腳本中使用的變量 。
下一個塊應(yīng)該是非常熟悉的:它在未提供參數(shù)時打印用法信息 。它為什么執(zhí)行 (exec) 實際的 rm 實用程序呢?如果您將此腳本命名為“rm并將其放在 $PATH 中靠前的位置 , 則它就可以充當(dāng) /bin/rm 的替代者 。該腳本的錯誤選項也是 /bin/rm 的錯誤選項 , 因此該腳本允許 /bin/rm 提供用法信息 。
下一個塊在備份目錄不存在時創(chuàng)建該目錄 。如果 mkdir 失敗 , 則該腳本終止并顯示適當(dāng)?shù)腻e誤消息 。
下一個塊查找位置參數(shù)列表中的 dash 參數(shù) 。如果 getopt 成功 , 則 $args 具有一個選項列表 。如果 getopt 失敗 , 例如在它無法識別某個選項的時候 , 則它會打印錯誤消息 , 并且該腳本將退出并顯示用法信息 。
隨后的塊捕獲一個字符串中旨在提供給 rm 的所有選項 。當(dāng)遇到特殊 getopt 選項 -- 時 , 選項收集過程停止 。shift 從參數(shù)列表中刪除所有已處理的參數(shù) , 保留待處理的文件和目錄列表 。
從以 for file 開頭的塊復(fù)制每個文件和目錄 , 以便在您自己的存檔目錄中保存它們 。每個文件的目錄被逐字 (-R) 復(fù)制到存檔目錄 , 并附帶當(dāng)前日期和時間作為后綴 , 以確保該副本是唯一的 , 并且不會改寫以前存檔的具有相同名稱的條目 。
最后 , 使用傳遞給該腳本的相同命令行選項來刪除文件和目錄 。
然而 , 如果您碰巧需要剛才刪除(意外刪除?)的文件或目錄 , 您可以在存檔中查找原始副本 。
向自動化進(jìn)軍
【對話 UNIX,第 6 部分: 通過腳本實現(xiàn)操作的自動化】您使用 Unix 的時間越多 , 就越有可能創(chuàng)建腳本 。腳本可以節(jié)省重新輸入復(fù)雜的較長命令序列所需的時間和精力 , 并且還可以防止發(fā)生錯誤 。Web 上充滿了其他人已創(chuàng)建的用于許多目的的有用腳本 。很快您也會發(fā)布自己的神奇腳本 。

推薦閱讀