shell脚本教程--Bash shell--3.shell 条件测试

3.shell 条件测试

test -d $v1 判断v1是不是目录

bash -vx .sh以调试的方式执行

test与[ ]一样

格式一:test条件表达式

格式二:[ 条件表达式 ]

格式三:[[ 条件表达式 ]]

3.1文件测试

-r +file 当前用户是否有读权限

-L +file 文件是否是连接文件

-b + file 文件是否为设备文件

-c +file 文件是否为字符设备文件

-d FILE
FILE exists and is a directory

-e FILE
FILE exists

-f FILE
FILE exists and is a regular file

-g FILE
FILE exists and is set-group-ID

-G FILE
FILE exists and is owned by the effective group ID

-h FILE
FILE exists and is a symbolic link (same as -L)

-k FILE
FILE exists and has its sticky bit set

-L FILE
FILE exists and is a symbolic link (same as -h)

-O FILE
FILE exists and is owned by the effective user ID

-p FILE
FILE exists and is a named pipe

-r FILE
FILE exists and read permission is granted

-s FILE
FILE exists and has a size greater than zero

-S FILE
FILE exists and is a socket

-t FD file descriptor FD is opened on a terminal

-u FILE
FILE exists and its set-user-ID bit is set

-w FILE
FILE exists and write permission is granted

-x FILE
FILE exists and execute (or search) permission is granted

-d文件

文件存在并且是一个目录

-e文件

文件已存在

-f文件

文件存在并且是常规文件

-g文件

文件已存在并设置为组ID

-G文件

文件存在并且由有效组ID拥有

-h文件

文件存在并且是符号链接(与-L相同)

-k文件

文件存在并设置了其粘滞位

-L文件

文件存在并且是符号链接(与-h相同)

-O文件

文件存在并且由有效用户ID拥有

-p文件

文件存在并且是命名管道

-r文件

文件已存在并已授予读取权限

-s文件

文件存在且大小大于零

-S文件

文件存在并且是套接字

-在终端上打开文件描述符FD

-u文件

文件存在并且其设置用户ID位已设置

-w文件

文件已存在并授予写入权限

-x文件

文件存在并授予执行(或搜索)权限

3.2数值测试

INTEGER1 -eq INTEGER2 #等于
		  INTEGER1 is equal to INTEGER2

INTEGER1 -ge INTEGER2#大于等于
          INTEGER1 is greater than or equal to INTEGER2

INTEGER1 -gt INTEGER2#大于
          INTEGER1 is greater than INTEGER2

INTEGER1 -le INTEGER2#小于等于
          INTEGER1 is less than or equal to INTEGER2

INTEGER1 -lt INTEGER2#小于
          INTEGER1 is less than INTEGER2

INTEGER1 -ne INTEGER2#不等于
          INTEGER1 is not equal to INTEGER2

3.3C风格的数值判断

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2urnEh37-1618931733987)(C:\Users\wei\AppData\Roaming\Typora\typora-user-images\image-20210420154017208.png)]

3.4字符串比较

 -n STRING
 	the length of STRING is nonzero

STRING equivalent to -n STRING

-z STRING
	the length of STRING is zero

STRING1 = STRING2
	the strings are equal

STRING1 != STRING2
	the strings are not equal

3.5表达式

( EXPRESSION )
              EXPRESSION is true

! EXPRESSION
              EXPRESSION is false

EXPRESSION1 -a EXPRESSION2
              both EXPRESSION1 and EXPRESSION2 are true

EXPRESSION1 -o EXPRESSION2
              either EXPRESSION1 or EXPRESSION2 is true

示例:用户创建

#!/bin/bash
read -p "Please input the number of users: " number
if [[ ! "$number" =~^[0-9]+$ ]];then
	echo "$number is not number."
fi
read -p "Please input a name for users: " string

for i in `seq $number`
do
	user=$string$number
	useradd $user 
	if [ $? -eq 0 ];then
		echo "$user is created."
	fi
done

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9yFoR21Q-1618931733991)(C:\Users\wei\AppData\Roaming\Typora\typora-user-images\image-20210420231250302.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值