程式設計風格
過程式程式設計,目的解決問題
指令組織資料,指令的堆砌
為了完成複雜的任務
順序執行:周遊的方式執行,逐個運作
選擇執行:有一種選擇标準,結果隻能有一種選擇,隻執行某些 代碼片段
循環執行:對一類對象逐個運作相同的運算,類似于 拉磨 的方式,某些代碼連續執行多次
對象式程式設計:
資料為中心
程式執行的方式
編譯:先翻譯後執行,先将進階語言轉換為目标代碼:C,java程式 --> 編譯 --> 目标代碼
解釋:邊翻譯邊執行,為避免文法、邏輯等錯誤,一般先進行文法檢查 Shell,java,perl,python程式 --> 解釋 --> 目标代碼
bash:過程式程式設計、解釋執行
純文字格式
cpu上運作是由magic number指定的解釋器
由解釋器執行文本
選擇執行
在由if指定的條件中有2種可能,執行狀态結果為0,或執行狀态結果不為0的結果。
單分支條件判斷
1
2
3
4
5
6
7
8
9
10
<code>if</code> <code>條件;那麼</code>
<code> </code><code>條件的執行狀态結果為0</code>
<code>結束</code>
<code>或</code>
<code>if</code> <code>條件</code>
<code>那麼</code>
2分支條件判斷
11
12
13
14
<code>否則</code>
<code> </code><code>條件的執行狀态結果不為0</code>
例如:
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
<code>如果使用者存在,則添加</code>
<code># vim adduser.sh</code>
<code>#!/bin/bash</code>
<code>#</code>
<code>##判斷向腳本傳遞的參數是否小于1</code>
<code>if</code> <code>[ $</code><code># -lt 1 ]</code>
<code>then</code>
<code>echo</code> <code>"At least one arguments."</code>
<code>exit</code> <code>1 </code><code>##如果向腳本傳遞的參數小于1,就退出 </code>
<code>fi</code>
<code>##小于1退出,則能繼續執行的為>=1</code>
<code>##判斷使用者是否存在</code>
<code>if</code> <code>id</code> <code>$1 &> </code><code>/dev/null</code><code>; </code><code>then</code>
<code> </code><code>#條件的執行狀态結果為0,表示為存在</code>
<code> </code><code>echo</code> <code>"$1 exists."</code>
<code> </code><code>#存在時,退出,傳回0</code>
<code> </code><code>exit</code> <code>0</code>
<code>#否則</code>
<code>else</code>
<code> </code><code>#條件的執行狀态結果不為0,表示為不存在</code>
<code> </code><code>useradd</code> <code>$1 &> </code><code>/dev/null</code>
<code> </code><code>#如果添加不成功,顯示使用者名不合法</code>
<code> </code><code>[ $? -</code><code>eq</code> <code>0 ] || </code><code>echo</code> <code>"User name is not legal"</code> <code>&& </code><code>exit</code> <code>1</code>
<code> </code><code>#如果執行成功,添加密碼</code>
<code> </code><code>echo</code> <code>"$1"</code> <code>| </code><code>passwd</code> <code>--stdin $1 > </code><code>/dev/null</code> <code>2>&1</code>
<code> </code><code>#添加密碼成功時,傳回0</code>
<code> </code><code>[ $? -</code><code>eq</code> <code>0 ] && </code><code>exit</code> <code>0</code>
<code> </code><code>#添加密碼不成功時,傳回1</code>
<code> </code><code>exit</code> <code>1 </code>
<code>#結束</code>
<code>給予x權限</code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># chmod +x adduser.sh </code>
<code>[root@izpo45bh60h6bsz tmp]</code><code># ls -l adduser.sh</code>
<code>-rwxr-xr-x 1 root root 835 Aug 5 16:37 adduser.sh</code>
<code>執行</code>
<code>.</code><code>/adduser</code><code>.sh user::::::::::::::::::::::::::</code>
<code>User name is not legal</code>
<code></code>
本文轉自 lccnx 51CTO部落格,原文連結:http://blog.51cto.com/sonlich/1953846,如需轉載請自行聯系原作者