中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

shell腳本編程在UNIX和Linux下有什么區別

發布時間:2021-10-27 11:57:55 來源:億速云 閱讀:228 作者:小新 欄目:系統運維

這篇文章主要介紹了shell腳本編程在UNIX和Linux下有什么區別,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

與其他 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 循環中,這使這個腳本看起來更干凈、更容易理解了。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“shell腳本編程在UNIX和Linux下有什么區別”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

辉南县| 平乡县| 蒙阴县| 车险| 如东县| 凤阳县| 淄博市| 盐城市| 社旗县| 怀宁县| 宜都市| 托克托县| 南通市| 临武县| 霍州市| 武穴市| 峡江县| 古浪县| 双江| 普兰店市| 故城县| 永吉县| 文安县| 太原市| 汪清县| 大连市| 本溪| 崇信县| 徐闻县| 招远市| 东乡县| 张家口市| 永仁县| 老河口市| 樟树市| 榆中县| 宁南县| 莆田市| 昭觉县| 黔西| 建湖县|