Linux之bash脚本编程---选择执行
編程風格
????過程式編程,目的解決問題
????? ? 指令組織數(shù)據(jù),指令的堆砌
????????為了完成復雜的任務(wù)
????????????順序執(zhí)行:遍歷的方式執(zhí)行,逐個運行
????????????選擇執(zhí)行:有一種選擇標準,結(jié)果只能有一種選擇,只執(zhí)行某些 代碼片段
????????????循環(huán)執(zhí)行:對一類對象逐個運行相同的運算,類似于 拉磨 的方式,某些代碼連續(xù)執(zhí)行多次
????對象式編程:
????????數(shù)據(jù)為中心
程序執(zhí)行的方式
????編譯:先翻譯后執(zhí)行,先將高級語言轉(zhuǎn)換為目標代碼:C,java程序 --> 編譯 --> 目標代碼
????解釋:邊翻譯邊執(zhí)行,為避免語法、邏輯等錯誤,一般先進行語法檢查?Shell,java,perl,python程序 --> 解釋 --> 目標代碼
????
bash:過程式編程、解釋執(zhí)行
????純文本格式
????cpu上運行是由magic number指定的解釋器
????由解釋器執(zhí)行文本
選擇執(zhí)行
????在由if指定的條件中有2種可能,執(zhí)行狀態(tài)結(jié)果為0,或執(zhí)行狀態(tài)結(jié)果不為0的結(jié)果。
?????單分支條件判斷
| 1 2 3 4 5 6 7 8 9 10 | if?條件;那么 ????條件的執(zhí)行狀態(tài)結(jié)果為0 結(jié)束 或 if?條件 那么 ????條件的執(zhí)行狀態(tài)結(jié)果為0 結(jié)束 |
????????2分支條件判斷
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | if?條件;那么 ????條件的執(zhí)行狀態(tài)結(jié)果為0 否則 ????條件的執(zhí)行狀態(tài)結(jié)果不為0 結(jié)束 或 if?條件 那么 ????條件的執(zhí)行狀態(tài)結(jié)果為0 否則 ????條件的執(zhí)行狀態(tài)結(jié)果不為0 結(jié)束 |
例如:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 如果用戶存在,則添加 #?vim?adduser.sh #!/bin/bash # ##判斷向腳本傳遞的參數(shù)是否小于1 if?[?$#?-lt?1?] then echo?"At?least?one?arguments." exit?1??##如果向腳本傳遞的參數(shù)小于1,就退出? fi ##小于1退出,則能繼續(xù)執(zhí)行的為>=1 ##判斷用戶是否存在 if?id?$1?&>?/dev/null;?then ????#條件的執(zhí)行狀態(tài)結(jié)果為0,表示為存在 ????echo?"$1?exists." ????#存在時,退出,返回0 ????exit?0 #否則 else ????#條件的執(zhí)行狀態(tài)結(jié)果不為0,表示為不存在 ????useradd?$1?&>?/dev/null ????#如果添加不成功,顯示用戶名不合法 ????[?$??-eq?0?]?||?echo?"User?name?is?not?legal"?&&?exit?1 ????#如果執(zhí)行成功,添加密碼 ????echo?"$1"?|?passwd?--stdin?$1?>?/dev/null?2>&1 ????#添加密碼成功時,返回0 ????[?$??-eq?0?]?&&?exit?0 ????#添加密碼不成功時,返回1 ????exit?1? #結(jié)束 fi 給予x權(quán)限 [root@izpo45bh60h6bsz?tmp]#?chmod?+x?adduser.sh? [root@izpo45bh60h6bsz?tmp]#?ls?-l?adduser.sh -rwxr-xr-x?1?root?root?835?Aug??5?16:37?adduser.sh 執(zhí)行 ./adduser.sh?user:::::::::::::::::::::::::: User?name?is?not?legal |
本文轉(zhuǎn)自 lccnx 51CTO博客,原文鏈接:http://blog.51cto.com/sonlich/1953846,如需轉(zhuǎn)載請自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的Linux之bash脚本编程---选择执行的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 构造NFS
- 下一篇: RabbitMQ实例教程:Windows