bash测试是否有语法测试
bash -n file.sh
以调试模式执行脚本
bash -x file.sh
shell中定义全局变量
export DATE=`date +%Y%M%D`
shell中交互式输入
read
-t:设置超时时间
-p:指定提示信息
shell中进行算术运算符
A=3
B=4
如果使用C=$A+$B表示字符串相加,结果为3+4
1、let 算术运算表达式
let C=$A+$B
2、$[算术运算表达式]
C=$[$C+$B]也可写作
let C+=$B
3、$((算术运算符))
C=$(($A+$B))
4、expr 算术运算符,表达式之间要有空格,并使用命令引用
C=`expr $A + $B`
shell中条件测试
1、整数测试(双目操作,比较两个数字,一般是变量和数字或者变量和变量)
表达式[ $A -eq $B ] (命令测试法,注意空格)
[[ $A -eq $B ]] (关键字测试法)
test $A -eq $B (test命令测试法)
-gt大于
-le小于等于
-ne不等于
-eq等于
-ge大于等于
-lt小于
注:在测试时,除了使用上述判断式以外,都无需使用[]
如:if grep "^$USERNAME\>" /etc/passwd ;then 可以直接判断,无需使用[]
2、文件测试
-e FILE:测试文件是否存在
-f FILE:测试文件是否为普通文件
-d FILE:测试文件是否为目录
-r FILE:测试当前用户对指定文件是否用读取权限
-w FILE:测试当前用户对指定文件是否用写入权限
-x FILE:测试当前用户对指定文件是否用执行权限
如:if [ -f /etc/inittab ] (注意空格)
3、字符测试
==:测试是否相等,等为真,不等为假(==两边要注意有空格)
!=:测试是否不等,不等为真,等为假
>:测试是否大于,大于为真,小于为假
<:测试是否小于,小于为真,大于为假
-n string:测试指定字符串是否为空,空为真,不空为假
-s string:测试指定字符串是否不为空,不空为真,空为假
exit # 定义退出状态码
bash变量类型
本地变量(局部变量)【作用域为当前Shell】
环境变量【作用域为当前shell和子shell】
位置变量
$1 $2 $3
shift n(踢除前n个位置变量)
特殊变量
$?:上一条命令执行状态
$#:参数的个数
$*:参数列表
$@:参数列表