bash变量类型:
环境变量
本地变量(局部变量)
位置变量
特殊变量
本地变量:作用域为整个bash进程
VARNAME=VALUE
局部变量:作用域为当前代码段
local VARNAME=VALUE
环境变量:作用域为当前shell进程及其子进程
export VARNAME=VALUE
位置变量:
$1, $2,...
特殊变量:
$?:上一个命令状态返回值
$#:参数的个数
$*:参数列表
$@:参数列表
$0:输出当前执行脚本的文件名
撤销变量:
unset VARNAME
查看当前shell中所有变量:
set
查看当前shell中的环境变量:
printenv
env
export
条件判断:
条件测试类型:
整数比较
字符测试
文件测试
条件测试的表达式:
[ expression ]
[[ expression ]]
test expression
整数比较:
-eq:等于、等值比较
-ne:不等于、不等值比较
-gt:大于
-lt:小于
-ge:大于或等于
-le:小于或等于
命令间逻辑关系:
逻辑与:&&
逻辑或:||
条件判断,控制结构:
单分支if语句:
if 判断条件; then
statement1
statement2
...
fi
双分支if语句:
if 判断条件; then
statement1
statement2
...
else
statement3
statement4
...
fi
多分支if语句:
if 判断条件1; then
statement1
statement2
...
elif 判断条件2; then
statement3
...
elif 判断条件3; then
statement4
...
else
statement5
statement6
...
fi
字符测试:
==:相等
!=:不相等
<
>
-n string:测试指定字符串是否为不空,不空为真,空则假
-z string:测试指定字符串是否为空,空为真,不空则假
文件测试:
-e file:测试文件是否存在
-f file:测试文件是否为普通文件
-d file:测试指定路径是否为目录
-r file:测试当前用户对指定文件是否有读权限
-w file:测试当前用户对指定文件是否有写权限
-x file:测试当前用户对指定文件是否有执行权限
组合测试:
-a:与
-o:或
!:非
定义脚本退出状态码:
exit:退出脚本
exit # ——> 退出代码(0-255)
注:如果脚本没有明确定义脚本退出状态码,那么最后执行的一条命令状态码即为脚本的退出状态码。
bash -n file.sh ——> 测试脚本是否有语法错误
bash -x file.sh ——> 显示执行过程
算术运算:
A=10
B=100
1、let 算术运算表达式
let C=$A+$B
2、$[算术运算表达式]
C=$[$A+$B]
3、$((算术运算表达式))
C=$(($A+$B))
4、expr 算术运算表达式,表达式中操作数及运算符间要有空格,而且要使用命令引用
C=`expr $A + $B`
原文地址:http://yuyucat.blog.51cto.com/9627004/1651917