shell(条件测试)

格式

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

文件测试 (文件或目录)

1
2
3
4
5
6
7
8
9
test -d /home
[ -d /home ]
[ -e dir file ]
[ -d dir ]
[ -f file ##是否存在,而且是文件
[ -r file ##当前用户对文件是否有读权限
[ -x file ]
[ -w file ]
[ -L file ]

数值比较

1
2
3
4
5
6
7
8
9
[ 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 "当前是超级用户"

文本比较

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

  

其它

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
()     #子shelll中执行
(())   #数值比较
$()    #命令替换
$(())  #整数运算
 
[]   #条件测试
[[]] #条件测试,支持正则 =~
$[]  #整数运算
 
./01.sh     #需要执行权限  在子shell中执行
bash 01.sh  #不需要执行权限 在子shell中执行
.01.sh      #不需要执行权限 在当前shell中执行
source 01.sh  #不需要执行权限 在当前shell中执行
 
调试脚本
    sh -n 02.sh  #仅调试
    sh -vx 02.sh #以调试的方式执行,查询整个执行过程

  

posted @   smatterer  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示