謝煙客---------Linux之bash腳本編程---選擇執行
編程風格
過程式編程,目的解決問題
指令組織數據,指令的堆砌
為了完成復雜的任務
順序執行:遍歷的方式執行,逐個運行
選擇執行:有一種選擇標準,結果只能有一種選擇,只執行某些 代碼片段
循環執行:對一類對象逐個運行相同的運算,類似於 拉磨 的方式,某些代碼連續執行多次
對象式編程:
數據為中心
程序執行的方式
編譯:先翻譯後執行,先將高級語言轉換為目標代碼:C,java程序 --> 編譯 --> 目標代碼
解釋:邊翻譯邊執行,為避免語法、邏輯等錯誤,一般先進行語法檢查 Shell,java,perl,python程序 --> 解釋 --> 目標代碼
bash:過程式編程、解釋執行
純文本格式
cpu上運行是由magic number指定的解釋器
由解釋器執行文本
選擇執行
在由if指定的條件中有2種可能,執行狀態結果為0,或執行狀態結果不為0的結果。
單分支條件判斷
if 條件;那麽 條件的執行狀態結果為0 結束 或 if 條件 那麽 條件的執行狀態結果為0 結束
2分支條件判斷
if 條件;那麽 條件的執行狀態結果為0 否則 條件的執行狀態結果不為0 結束 或 if 條件 那麽 條件的執行狀態結果為0 否則 條件的執行狀態結果不為0 結束
例如:
如果用戶存在,則添加 # vim adduser.sh #!/bin/bash # ##判斷向腳本傳遞的參數是否小於1 if [ $# -lt 1 ] then echo "At least one arguments." exit 1 ##如果向腳本傳遞的參數小於1,就退出 fi ##小於1退出,則能繼續執行的為>=1 ##判斷用戶是否存在 if id $1 &> /dev/null; then #條件的執行狀態結果為0,表示為存在 echo "$1 exists." #存在時,退出,返回0 exit 0 #否則 else #條件的執行狀態結果不為0,表示為不存在 useradd $1 &> /dev/null #如果添加不成功,顯示用戶名不合法 [ $? -eq 0 ] || echo "User name is not legal" && exit 1 #如果執行成功,添加密碼 echo "$1" | passwd --stdin $1 > /dev/null 2>&1 #添加密碼成功時,返回0 [ $? -eq 0 ] && exit 0 #添加密碼不成功時,返回1 exit 1 #結束 fi 給予x權限 [[email protected]
本文出自 “Reading” 博客,請務必保留此出處http://sonlich.blog.51cto.com/12825953/1953846
謝煙客---------Linux之bash腳本編程---選擇執行