Linux bash脚本编程(三)

Linux bash脚本编程

shell中如何进行算术运算:
A=3
B=6
1、let 算术运算表达式
let C=$A+$B

A=10
B=12
let C=$A+$B
22

2、$[算术运算表达式]
C=$[$A*$B]
3、$((算术运算表达式))
C=$(($A-$B))
4、expr 算术运算表达式,表达式中各操作数及运算符之间要有空格,而且要使用命令引用
C=expr $A / $B

多分支的if语句:
if 判断条件1; then
statement1
...
elif 判断条件2; then
statement2
...
elif 判断条件3; then
statement3
...
else
statement4
...
fi

文件测试:
-e FILE:测试文件是否存在
-f FILE: 测试文件是否为普通文件
-d FILE: 测试指定路径是否为目录
-r FILE: 测试当前用户对指定文件是否有读取权限;
-w
-x

exit: 退出脚本
exit #
如果脚本没有明确定义退出状态码,那么,最后执行的一条命令的退出码即为脚本的退出状态码

#!/bin/bash
#
if [ $# -lt 1 ]; then
    echo "Usage:$0 ARG1 [ARG2 ...]"
    exit 4
elif [ -e $1 ]; then
    echo 'There is this file'
else
    echo 'No such file'
fi

P.S:由于在公司和家里两个地方,并且bash时间太长,也没有保存图片

Linux bash脚本编程(二)

条件判断:
如果用户不存在
添加用户,给密码并显示添加成功;
否则
显示如果已经没在,没有添加;

bash中如何实现条件判断?
条件测试类型:
整数测试
字符测试
文件测试

条件测试的表达式:
[ expression ]
[[ expression ]]
test expression
整数比较:
-eq: equal to 测试两个整数是否相等;比如 $A -eq $B
-ne: not equal to 测试两个整数是否不等;不等,为真;相等,为假;
-gt: greater than 测试一个数是否大于另一个数;大于,为真;否则,为假;
-lt: less than 测试一个数是否小于另一个数;小于,为真;否则,为假;
-ge: greater than or equal to大于或等于
-le:less than or equal to 小于或等于

#!/bin/bash
A=`grep '^$' /etc/inittab | wc -l`
if [ $A -gt 0 ]; then
    echo "$A"
else
    echo "No blank line!"
fi

bash脚本编程(一)

bash脚本编程(一)

脚本:命令的堆砌,按实际需求,结合命令流程控制机制实现的源程序
变量类型:事先确定数据的存储格式和长度
1、字符
2、数值:整型、浮点型
3、真、假

bash的变量类型
1、本地变量
set VARNAME=VALUE 作用域为整个bash进程(局部变量)local VARNAME=VALUE 作用域为当前代码段
2、环境变量
作用域为当前shell进程及其子进程 export VARNAME=VALUE export:导出
3、位置变量
$1, $2, ...
shift
4、特殊变量
$?:上一个命令的执行状态返回值
程序执行,可能有两类返回值:
程序执行结果
程序状态返回代码(0-255)
0: 正确执行
1-255:错误执行,1,2,127系统预留;
$#:参数的个数
$*: 参数列表
$@:参数列表

撤消变量:
unset VARNAME
查看当shell中变量:
set
查看当前shell中的环境变量:
printenv
env
export

逻辑运算:与、或、非、异或
逻辑与: &&
第一个条件为假时,第二条件不用再判断,最终结果已经有;
第一个条件为真时,第二条件必须得判断;
逻辑或: ||

添加环境变量
echo $PATH 查看环境变量
export PATH=$PATH:/usr/local/apache/bin 添加/usr/local/apache/bin到环境变量后面
export PATH=/usr/local/apach/bin:$PATH 添加/usr/local/apache/bin到环境变量后面