编程风格
过程式编程,目的解决问题
指令组织数据,指令的堆砌
为了完成复杂的任务
顺序执行:遍历的方式执行,逐个运行
选择执行:有一种选择标准,结果只能有一种选择,只执行某些 代码片段
循环执行:对一类对象逐个运行相同的运算,类似于 拉磨 的方式,某些代码连续执行多次
对象式编程:
数据为中心
程序执行的方式
编译:先翻译后执行,先将高级语言转换为目标代码: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,如需转载请自行联系原作者