腳本編程語言與編譯型語言:
腳本編程語言:(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用戶已存在,否則添加此賬戶。
條件判斷語句總結:
范例: