编程风格

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

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

为了完成复杂的任务

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

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

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

对象式编程:

数据为中心

程序执行的方式

编译:先翻译后执行,先将高级语言转换为目标代码: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/nullthen
    #条件的执行状态结果为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,如需转载请自行联系原作者

Linux之bash脚本编程---选择执行相关推荐

  1. Linux之bash脚本编程---if补充和for循环

    if 单分支.双分支.多分支.嵌套if语句 for 列表表示 1.给出列表 2.{1..100} 3.命令引用: 1)$(ls DIR) 2)$(1 1 100) 4.glob 5.$*,$@ con ...

  2. bash脚本编程入门_Bash编程入门

    bash脚本编程入门 对Unix的最初希望之一是,它将使日常的计算机用户能够微调其计算机以适应其独特的工作风格. 在过去的几十年中,对计算机定制的期望已经降低,许多用户将他们收集的应用程序和网站视为他 ...

  3. linux 中输入bash,Linux上Bash Shell编程

    Linux下Bash Shell编程 Bash Shell Programming in Linux Linux下Bash Shell编程 Bash what? 进阶的内容是什么? Okay, I g ...

  4. Linux之shell脚本编程

    Linux之shell脚本编程 编程介绍 shell 介绍 shell 脚本编程介绍 shell脚本命令 shell 编程基础知识 编程介绍 计算机编程的本质:输入.运算.输出 编译型语言: 程序在执 ...

  5. 高级Bash脚本编程指南《Advanced Bash-Scripting Guide》 in Chinese

    <Advanced Bash-Scripting Guide> in Chinese <高级Bash脚本编程指南>Revision 10中文版 在线阅读链接:http://ww ...

  6. Bash脚本编程之算术运算

    简介 Bash所支持的算术运算和C语言是一样的,这里指的是操作符(operator)以及它们的优先级(precedence).结合性(associativity)和值,详见Shell Arithmet ...

  7. linux脚本编程if[-z],Linux基础之bash脚本编程进阶篇-选择执行语句(if,case)

    bash脚本的书写规范简介 看本文需要了解的脚本撰写习惯:bash 开头顶格写#!紧接着写解释器路径/bin/bash 由于bash属于脚本语言,脚本语言的运行方式 解释运行:源代码 --> 运 ...

  8. linux的逻辑运算参数,Linux基础之bash脚本编程初级-逻辑运算与测试

    引言 前面介绍了bash编程的基础变量与算术表达式,本文介绍在脚本中的进阶知识:测试 在bash中测试大体分两部分:条件测试.组合测试. 而条件测试又分:数值测试.字符串测试.文件测试. 组合测试则有 ...

  9. linux bash脚本编程知识点

    bash变量类型: 环境变量 本地变量(局部变量) 位置变量 特殊变量 本地变量: set VARNAME=VALUE: 作用域为整个bash进程: 引用变量 $(varname) 局部变量: loc ...

最新文章

  1. 基于 MTCNN/TensorFlow 实现人脸检测
  2. opensuse13.2 安裝五笔
  3. python apply_async函数_Python-未调用apply_async回调函数
  4. 使用NSOperation为你的app加速
  5. java jdbc封装_JDBC封装-Java(新手)
  6. 安装VxWorks 6.6有感
  7. python工资这么高为什么不学-为什么Python岗位薪资越来越高
  8. webrtc之SVC实现(十)
  9. Oracle数据库的四款工具软件
  10. 晋中正规的计算机学校有哪些,2018晋中公办大专学校有哪些 【教育部专科院校名单】...
  11. dirent.h使用详解
  12. 三星内存编码_看编号 识内存
  13. CSV文件使用Excel打开
  14. android自动发布,Jenkins + Android 自动化打包 发布到蒲公英
  15. 《matlab科研绘图系列》之小提琴图绘制
  16. offsetof宏的模拟实现
  17. idea 连接达梦数据库
  18. 内核线程注入(x64)
  19. linux pppoe优化性能,基于Linux内核模式的PPPoE优化与实现.pdf
  20. 课后练习03---126字母邮箱注册功能

热门文章

  1. Java动态代理类使用
  2. java 异常捕捉 ( try catch finally ) 你真的掌握了吗?
  3. 《卓有成效的程序员》----读书笔记一
  4. Python 阅读书目推荐
  5. 斯坦福大学深度学习与自然语言处理第二讲:词向量
  6. 程序员面试题精选100题(25)-在从1到n的正数中1出现的次数[算法]
  7. 编程之美-1的数目方法整理
  8. footer固定到底部
  9. 【VMCloud云平台】SCO(七)如何使用集成包
  10. WAMP_DEDE兼容配置