共計 1629 個字符,預計需要花費 5 分鐘才能閱讀完成。
這篇文章主要介紹了 shell 腳本編程在 UNIX 和 Linux 下有什么區別,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓丸趣 TV 小編帶著大家一起了解一下。
與其他 UNIX 操作系統和 Linux 一樣,IBM? AIX? 操作系統提供了幾種能夠幫助系統管理員、開發人員和用戶執行日常任務的強大工具,使他們或其客戶的工作更輕松。在 UNIX 中,這些工具之一能夠通過編寫 shell 腳本編程來自動執行任務,從而簡化那些困難、漫長或繁瑣的工作。
盡管在近兩年使用過 UNIX 的一些人可能嘗試過 shell 腳本編程,但是他們很可能只是研究操作系統的細節,并不精通 shell 腳本編程。本文針對那些希望進一步了解 shell 腳本編程,并開始編寫更高級腳本的讀者。本文提供腳本編程的基礎知識,包括如何簡化腳本、如何盡可能保持腳本的靈活性、如何編寫干凈的腳本、在腳本內編寫注釋以及調試腳本。
shell 腳本編程保持簡單
在人們學習如何編寫 shell 腳本編程時,常常遇到的一個問題是,重復他們在另一個腳本中已經做過的工作。他們其實不需要復制原來的腳本并修改幾個硬編碼值,只需創建一個函數來處理兩個腳本的重復部分。創建集中的函數還可以促進標準化,幫助創建統一的腳本。如果一個函數在腳本的一個部分工作正常,那么它在腳本中的其他地方也會正常工作。
例如,清單 1 所示的腳本應該濃縮和簡化為更簡單、更干凈的程序。
清單 1. 可以簡化的腳本示例
#!/usr/bin/ksh if [[ $# -lt 2 ]] then echo Usage: ${0##*/} file name #1 file name #2 exit 0 fi if [[ ! -f ${1} ]] then echo Unable to find file ${1} exit 1 fi if [[ ! -r ${1} ]] then echo Unable to read file ${1} exit 2 fi gzip ${1} ls -l ${1}.gz if [[ ! -f ${2} ]] then echo Unable to find file ${2} exit 1 fi if [[ ! -r ${2} ]] then echo Unable to read file ${2} exit 2 fi gzip ${2} ls -l ${2}.gz
這個腳本看起來很糟糕!(謝天謝地,它只是一個示例)。這個 shell 腳本編程應該盡可能進行濃縮。從便于閱讀的角度來看,清單 2 提供的版本更干凈。
清單 2. 對清單 1 腳本進行濃縮的版本
#!/usr/bin/ksh exit_msg() { [[ $# -gt 1 ]] echo ${0##*/} (${1}) - ${2} exit ${1:-0} } [[ $# -lt 2 ]] exit_msg 0 Usage: ${0##*/} file name #1 file name #2 for _FNAME in $@ do [[ ! -f ${_FNAME} ]] exit_msg 1 Unable to find file ${_FNAME} [[ ! -r ${_FNAME} ]] exit_msg 2 Unable to read file ${_FNAME} gzip ${_FNAME} ls -l ${_FNAME}.gz done
注意到這兩者的差異了嗎?這個 shell 腳本編程增加了一個簡單的函數來顯示一個消息并帶適當的返回碼退出,還把所有操作轉移到一個 for 循環中,這使這個腳本看起來更干凈、更容易理解了。
感謝你能夠認真閱讀完這篇文章,希望丸趣 TV 小編分享的“shell 腳本編程在 UNIX 和 Linux 下有什么區別”這篇文章對大家有幫助,同時也希望大家多多支持丸趣 TV,關注丸趣 TV 行業資訊頻道,更多相關知識等著你來學習!