Linux之bash脚本编程---选择执行

简介:

编程风格

    过程式编程,目的解决问题

        指令组织数据,指令的堆砌

        为了完成复杂的任务

            顺序执行:遍历的方式执行,逐个运行

            选择执行:有一种选择标准,结果只能有一种选择,只执行某些 代码片段

            循环执行:对一类对象逐个运行相同的运算,类似于 拉磨 的方式,某些代码连续执行多次


    对象式编程:

        数据为中心


程序执行的方式

    编译:先翻译后执行,先将高级语言转换为目标代码:C,java程序 --> 编译 --> 目标代码

    解释:边翻译边执行,为避免语法、逻辑等错误,一般先进行语法检查 Shell,java,perl,python程序 --> 解释 --> 目标代码

    

bash:过程式编程、解释执行

    纯文本格式

    cpu上运行是由magic number指定的解释器

    由解释器执行文本


选择执行

    在由if指定的条件中有2种可能,执行状态结果为0,或执行状态结果不为0的结果。

     单分支条件判断

1
2
3
4
5
6
7
8
9
10
if  条件;那么
     条件的执行状态结果为0
结束
 
 
if  条件
那么
     条件的执行状态结果为0
结束

        2分支条件判断

1
2
3
4
5
6
7
8
9
10
11
12
13
14
if  条件;那么
     条件的执行状态结果为0
否则
     条件的执行状态结果不为0
结束
 
 
if  条件
那么
     条件的执行状态结果为0
否则
     条件的执行状态结果不为0
结束


例如:

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
#
 
##判断向脚本传递的参数是否小于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 
#结束
fi
 
给予x权限
[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
 
执行
. /adduser .sh user::::::::::::::::::::::::::
User name is not legal










本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1953846,如需转载请自行联系原作者
目录
相关文章
|
26天前
|
Java Linux
自定义linux脚本用于快速jar包启动、停止、重启
自定义linux脚本用于快速jar包启动、停止、重启
100 29
|
1月前
|
安全 算法 Ubuntu
Linux(openssl)环境:编程控制让证书自签的技巧。
总结:在Linux环境中,OpenSSL是一个非常实用的工具,可以帮助我们轻松地生成自签名证书。通过上述三个简单步骤,即可为内部网络、测试环境或开发环境创建自签名证书。但在公共访问场景下,建议购买经过权威认证机构签发的证书,以避免安全警告。
76 13
|
29天前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
107 3
|
29天前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
49 4
|
2月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
140 25
|
2月前
|
安全 Linux
阿里云linux服务器使用脚本通过安全组屏蔽异常海外访问ip
公网网站可能会遭受黑客攻击导致访问异常,使用此脚本可以屏蔽掉异常IP 恢复访问。也可自行设置定时任务定期检测屏蔽。
234 28
|
3月前
|
JavaScript Ubuntu Linux
如何在阿里云的linux上搭建Node.js编程环境?
本指南介绍如何在阿里云Linux服务器(Ubuntu/CentOS)上搭建Node.js环境,包含两种安装方式:包管理器快速安装和NVM多版本管理。同时覆盖全局npm工具配置、应用部署示例(如Express服务)、PM2持久化运行、阿里云安全组设置及外部访问验证等步骤,助你完成开发与生产环境的搭建。
|
4月前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
321 32
|
4月前
|
存储 Linux 网络安全
linux应急响应检查脚本
通过这个脚本,可以快速收集系统的关键信息,有助于在发生问题时进行及时的应急响应和分析。
181 34
|
4月前
|
Linux
Linux编程: 在业务线程中注册和处理Linux信号
通过本文,您可以了解如何在业务线程中注册和处理Linux信号。正确处理信号可以提高程序的健壮性和稳定性。希望这些内容能帮助您更好地理解和应用Linux信号处理机制。
91 26