1. 程式人生 > >謝煙客---------Linux之bash腳本編程---選擇執行

謝煙客---------Linux之bash腳本編程---選擇執行

linux

編程風格

過程式編程,目的解決問題

指令組織數據,指令的堆砌

為了完成復雜的任務

順序執行:遍歷的方式執行,逐個運行

選擇執行:有一種選擇標準,結果只能有一種選擇,只執行某些 代碼片段

循環執行:對一類對象逐個運行相同的運算,類似於 拉磨 的方式,某些代碼連續執行多次


對象式編程:

數據為中心


程序執行的方式

編譯:先翻譯後執行,先將高級語言轉換為目標代碼: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]
/* */ tmp]# chmod +x adduser.sh [[email protected] tmp]# ls -l adduser.sh -rwxr-xr-x 1 root root 835 Aug 5 16:37 adduser.sh 執行 ./adduser.sh user:::::::::::::::::::::::::: User name is not legal


本文出自 “Reading” 博客,請務必保留此出處http://sonlich.blog.51cto.com/12825953/1953846

謝煙客---------Linux之bash腳本編程---選擇執行