bash是一些基本的命令组成,要想学好bash脚本,基本命令是必须要记住
红色标记为着重点
1执行命令,利用状态返回值来判断
0 : 成功
1-255:失败
2: 测试表达式
[ expression ] 常用
[[ exprseeion ]]
bash 的测试类型
字符串字型 文件字型
测试数值:比较大小
-eq : 是否等于 [ $1 -eq $2 ]
-ne : 是否不等于 [ $1 -ne $2]
-gt : 是否大于 [ $1 -gt $2 ]
-ge : 是否大于等于[ $1 -ge $2 ]
-lt : 是否小于 [ $1 -lt $2 ]
-le : 是否小于等于 [ $1 -le $2 ]
字符串测试。字符串比较
==: 是否等于
> :是否大于
< : 是否小于
! = :是否不等于
=~: 左侧字符串的字符能够被右侧的pattern所匹配
-z " string" 判断指定的字符串是否为空。空则为真,不空则假
-n "string" 判断指定的字符串是否为不空。不空则为真,不空为假
注意:
(1) 字符串要加引号
(2) 在作字符串的比较的时候,格式如下:
if [ "$VARIABLE" == "$VARIABLE" -a "$VATIABLE" == "CPU" ];then 需要在运算符号两边有空格 ,并且使用双引号将字符串包裹起来,这样即使是变量也可以替换
文件测试
存在性测试
-a file //a -a b (:和)
-e file //检测存在性
文件的存在性测试,存在为真,否则为假
文件类型测试
-b file:是否存在并且为块设备文件
-c file:是否存在并且为字符设备文件
-d file:是否存在并且为目录文件
-f file:是否存在并且为普通文件
-h/l file:是否存在并且为符号链接文件
-p file:是否存在并且为管道文件
-S file:是否存在并且为套接字文件
文件权限测试
-r file:是否存在并且为当前用户可读
-w file:是否存在并且为当前用户可写
-x file:是否存在并且为当前用户可执行
特殊权限测试
-u file:是否存在并且为拥有SUID权限
-g file:是否存在并且为拥有GUID权限
-k file:是否存在并且为拥有Sticky权限
文件是否有内容
-s file:是否存在并且有内容
变量是否有为空,为空则为真
-z ""$VARIABLE"
文件的时间戳测试
-N file:文件自从上次被读取后是否修改过
从属关系测试
-O file:当前用户是否为文件的属主
-G file:当前用户是否属于文件的属组
双目测试
file1 -ef file2:是否为同一文件系统上的指向同一iNode的硬链接
file1 -nt file2:file1 是否新于file2
file1 -ot file2:file1 是否旧于file2
组合条件测试
特殊变量
$0:脚本文件路径名称本身
$#:保存了脚本参数的个数
$*:所有参数
[email protected]:所有参数