歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> Unix Shell腳本編程知識點總結及范例

Unix Shell腳本編程知識點總結及范例

日期:2017/3/1 9:56:55   编辑:SHELL編程

腳本編程語言與編譯型語言:

腳本編程語言:(Bash)
腳本編程語言通常是解釋型(interpreted),主要由解釋器(interpreter)讀入程序代碼,並將其轉換成內部的形式加以執行。
優點:
能夠輕易處理文件與目錄之類的對象。
缺點:
運行效率通常不如編譯型語言
編譯型語言:(C、C++、Java、Fortran、Ada、Pascal)
編譯型語言多半運作於底層,所處理的是字節、整數、浮點數或其它及其機器層經的對象。

SHELL腳本的基本語法格式:

腳本必須以#!開頭:(# cat /etc/shells)
例如#!/bin/bash(解釋器)
# 其中間可以添加一些注釋信息,例如腳本的使用方法、腳本的功能、創建日期、作者等相關信息
然後賦予腳本具有執行權限,# chmod +x scripts.sh
執行則使用./scripts.sh ##也可以將此腳本的路徑添加到PATH變量中,以後直接使用腳本名稱直接運行。
腳本的測試工具bash:
-n:檢查腳本是否有語法錯誤,有則顯示錯誤信息,否則無信息(沒有消息才是最好的消息)
-x:檢查腳本在執行中的詳細過程(排錯時,經常會用到)
exit:退出腳本(其數值為0-255)
如果腳本沒有明確定義退出碼,那麼在執行腳本結束前的退出碼為此腳本的退出碼。
# echo $? ##查看上一個命令執行結果所顯示的狀態碼

SHELL腳本的邏輯關系總結:

邏輯與:符號為&&:
如果其中一個為假,則結果一定為假
如果第一個條件結果為假,則第二個條件不用再判斷,最終結果已顯示
如果第一個條件結果為真,則第二個條件必須判斷
范例:
# useradd RedHat && echo "redhat" | passwd --stdin redhat
解說:如果useradd redhat執行成功,則繼續執行下一條命令,否則終止。

邏輯或||:
如果其中一個條件結果為真,則結果一定為真,不用檢查後面的語句
如果其中一個條件結果為假,則檢查下一個條件語句
范例:
# id redhat || useradd redhat
解說:如果redhat用戶存在,就顯示redhat用戶相關信息,否則添加此賬戶。
邏輯與和邏輯或聯合使用范例:
# id redhat && echo “redhat already existing“ || useradd redhat
解說:如果redhat用戶存在,則顯示redhat用戶已存在,否則添加此賬戶。

條件判斷語句總結:

  1. 單分支if語句 雙分支if語句 多分支if語句 case選擇語句
  2. if 判斷條件 ;then if 判斷條件;then if 判斷條件;thencase $1 in
  3. statement statement statement string)
  4. ...... ........ ......... statement;;
  5. fi else elif 判斷條件;then string2)
  6. statement statement statement;;
  7. ..... ......... ......)
  8. fi elif 判斷條件;then statement;;
  9. statement esac
  10. .........
  11. else
  12. statement
  13. fi

范例:

Copyright © Linux教程網 All Rights Reserved