shell(条件测试)

格式

格式1:test条件表达式
格式2:{ 条件表达式 }
格式3:{{ 条件表达式 }}

文件测试 (文件或目录)

test -d /home
[ -d /home ]
[ -e dir file ]
[ -d dir ]
[ -f file ]  ##是否存在,而且是文件
[ -r file ]  ##当前用户对文件是否有读权限
[ -x file ] 
[ -w file ]
[ -L file ]

数值比较

[ 1 -gt 10 ]  #大于
[ 1 -lt 10 ]   #小于
[ 1 -eq 10 ]  #等于
[ 1 -ne 10 ]  #不等于
[ 1 -ge 10 ]  #大于等于
[ 1 -le 10 ]   #小于等于
disk_use=$(df -P | grep '/$' | awk '{print $5}' | awk -F% '{print $1}')
[ $disk_use -gt 90 ] && echo "war....."
[ $(id -u) -eq 0 ] && echo "当前是超级用户"

文本比较

[ "$USER" = "root" ];echo  $?;  #字符串变量尽量双引号引起来
BBB="";echo ${#BBB}
BBB="";[ -z "$BBB" ] 字符长度是为0
BBB="";[ -n "$BBB" ] 字符长度不为0

  

其它

()     #子shelll中执行
(())   #数值比较
$()    #命令替换
$(())  #整数运算

[]   #条件测试
[[]] #条件测试,支持正则 =~
$[]  #整数运算

./01.sh     #需要执行权限  在子shell中执行
bash 01.sh  #不需要执行权限 在子shell中执行
.01.sh      #不需要执行权限 在当前shell中执行
source 01.sh  #不需要执行权限 在当前shell中执行

调试脚本
	sh -n 02.sh  #仅调试
	sh -vx 02.sh #以调试的方式执行,查询整个执行过程

  

posted @ 2022-11-29 11:47  smatterer  阅读(20)  评论(0)    收藏  举报