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

编程风格

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

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

为了完成复杂的任务

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

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

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

对象式编程:

数据为中心

程序执行的方式

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

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

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

纯文本格式

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

由解释器执行文本

选择执行

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

单分支条件判断

if 条件;那么
    条件的执行状态结果为0
结束

或

if 条件
那么
    条件的执行状态结果为0
结束

2分支条件判断

if 条件;那么
    条件的执行状态结果为0
否则
    条件的执行状态结果不为0
结束

或

if 条件
那么
    条件的执行状态结果为0
否则
    条件的执行状态结果不为0
结束

例如:

如果用户存在,则添加
# 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 1 
#结束
fi

给予x权限
[[email protected] tmp]# chmod +x adduser.sh 
[[email protected] 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
时间: 2024-10-16 20:01:31

谢烟客---------Linux之bash脚本编程---选择执行的相关文章

谢烟客---------Linux之bash脚本编程---if补充和for循环

bash:过程式编程,为了完成更复杂的任务,支持顺序执行.选择执行.循环执行 顺序执行:从左而右,依次执行命令. 选择执行:依据condition(条件)的执行状态结果,选择执行不同的代码片段. 循环执行:依据condition(条件)的执行状态结果,决定是否进入循环. condition: ture: 表示条件状态结果为0 false: 表示条件执行状态结果非0 if 单分支.双分支.多分支.嵌套if语句 1.单分支结构 if condition; then     if-ture fi 2.

bash脚本编程选择执行之case语句

选择执行的三种方式: (1) &&, || (2) if语句 (3) case语句 case语句的语法格式: case  $VARAIBLE  in PAT1) 分支1 ;; PAT2) 分支2 ;; ... *) 分支n ;; esac case支持glob风格的通配符: *:任意长度的任意字符: ?:任意单个字符: []:范围内任意单个字符: a|b:a或b: 示例:写一个服务框架脚本: $lockfile,  值/var/lock/subsys/SCRIPT_NAME (1) 此脚本

谢烟客---------Linux之bash脚本编程---用户交互

系统管理部分一: 分区.创建.查看.调整.挂载.文件系统的结构.硬链接.软链接 脚本"语法错误"非逻辑错误检测: # bash -n script.sh 单独执行,脚本执行每个代码 # bash -x script.sh +        程序在执行 没有+    程序过程中应该输出的信息 脚本的格式 +++++++++++++++++++++++++++++++++非格式,用于分割++++++++++++++++++++++++++++++++++ #!/bin/bash     #

Linux系统裁剪之二(Bash脚本编程之十二)

Linux系统裁剪之二(Bash脚本编程之十二) 系统函数库 ·Linux系统的启动流程     1,POST(加电自检) 计算机本身并不会执行程序,它只是一堆破铜烂铁,但是它可以在开机的时候先去载入一段程序,系统在刚刚启动的时候能够实现将某个ROM芯片中的程序映射到CPU能够寻址的地址空间中去,并且让CPU能够执行其中的指令,这些指令大部分都是用来做系统检测的,当检测完成后,如果系统中所有的基本硬件和核心硬件都没有问题的话,接下来就会根据BIOS中设定的系统启动次序(Boot Sequence

Linux命令:bash脚本编程

bash脚本编程简介: 此文假定你没有任何关于脚本或一般程序的编程知识, 但是如果你具备相关的知识, 那么你将很容易就能够达到中高级的水平. . . 你可以把此文作为参考, 自学手册, 或者是关于shell脚本技术的文档. 介绍内容包括: A:变量.变量类型 B:条件判断 C:算术运算 D: E: F: G: A.bash变量类型: 1)本地变量:(局部变量) set VARNAME=VALUE: 作用域为整个bash进程: 2)局部变量: local VARNAME=VALUE:作用域为当前代

Linux学习笔记--bash脚本编程之一变量、变量类型

bash脚本编程之一变量.变量类型 shell编程: 编译器,解释器 编程语言:机器语言.汇编语言.高级语言 静态语言:编译型语言 强类型(变量)语言 事先转换成可执行格式 C.C++.JAVA.C# 动态语言:解释型语言       on the fiy                                   弱类型 边解释边执行 ASP.ASP.net.PHP.shell.Python.perl 面向过程:shell.C   面向对象:JAVA.Python .Perl.C++

Linux学习笔记--bash脚本编程之二、条件判断

 bash脚本编程之二.条件判断 条件判断: 如果用户不存在 添加用户,给密码并显示添加成功: 否则 显示用户已存在,没有添加 bash中如何实现条件判断? 整数测试 字符测试 文件测试 条件测试的表达式:     [expression]     [[expression]]     test expression 整数比较: -eq:测试两个整数是否相等:比如 $A -eq $B     -ne:测试两个整数是否不等:不等,为真:相等,为假:     -qt:测试一个数是否大于另一个数:大于

bash脚本编程之条件判断、条件测试

脚本编程: 编程面向过程有如下几种执行方式 顺序执行 选择执行:  如 if, case 循环执行:  如 for, while, until bash的变量类型: 本地变量 set VAR_NAME=value 设置变量赋值 如: set User=Centos unset VAR_NAME 撤消变量赋值 如: unset User=Centos ${VAR_NAME} 作用范围:当前shell进程: 局部变量 local VAR_NAME=value 设置变量赋值 unset VAR_NAM

bash脚本编程基础

bash编程   bash脚本编程是过程式解释编程,其实就是linux命令的堆砌,既然是编程就应该有相应编程语法.    与任何过程式编程一样,过程式编程的特点就是:顺序执行,选择执行,循环执行.    过程式编程:以指令为中心,设计算法,数据服务于算法,过程式编程的灵魂:算法.    1.变量:数值变量,字符变量           bash环境:                本地变量:当前shell进程:                环境变量:当前shell进程及其子进程: