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:测试指定字符串是否不为空,不空为真,空为假

[root@liang-study scripts]# A=hello
[root@liang-study scripts]# B=hi
[root@liang-study scripts]# [ $A == $B ]
[root@liang-study scripts]# echo $?
1


exit #  定义退出状态码


bash变量类型

本地变量(局部变量)【作用域为当前Shell】

环境变量【作用域为当前shell和子shell】

位置变量

$1 $2 $3

shift n(踢除前n个位置变量)

特殊变量

$?:上一条命令执行状态

$#:参数的个数

$*:参数列表

$@:参数列表