文件测试所用的参数
操作符 | 作用 |
---|---|
-d | 测试文件是否为目录类型 |
-e | 测试文件是否存在 |
-f | 判断是否为一般文件 |
-r | 测试当前用户是否有权限读取 |
-w | 测试当前用户是否有权限写入 |
-x | 测试当前用户是否有权限执行 |
可用的整数比较运算符
操作符 | 作用 |
---|---|
-eq | 是否等于 |
-ne | 是否不等于 |
-gt | 是否大于 |
-lt | 是否小于 |
-le | 是否等于或小于 |
-ge | 是否大于或等于 |
常见的字符串比较运算符
操作符 | 作用 |
---|---|
= | 比较字符串内容是否相同 |
!= | 比较字符串内容是否不同 |
-z | 判断字符串内容是否为空 |
IF语句
#!/bin/bash
DIR="/media/cdrom1"
if [ ! -e $DIR ]
then
mkdir -p $DIR
fi
if双分支语句
#!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null
# -c表示执行三次 ,-i 表示执行频率,-W 表示延迟几秒结束
if [ $? -eq 0 ];then
echo "Host $1 is On-line."
else
echo "Host $1 is Off-line."
fi
多分支if语句
#!/bin/bash
read -p "Enter your score(0-100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ; then
echo "$GRADE is Excellent"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] ; then
echo "$GRADE is Pass"
else
echo "$GRADE is Fail"
fi
for条件循环语句
下面是一个很经典的创建批量用户的脚本
先设置一个写有用户名的文件“user.txt”
# eamcs user.txt
andy
barry
carl
duke
eric
george
接下来写脚本
#!/bin/bash
# 设置一个密码
read -p "Enter The Users Password : " PASSWD
# for的基本语句
for UNAME in `cat user.txt`
do
# 首先判断id是否存在
id $UNAME &> /dev/null
if [ $? -eq 0 ]
then
echo "Already exists"
else
# 不存在就执行创建id,并给id一个密码
useradd $UNAME &> /dev/null
echo "$PASSWD" | passwd --stdin $UNAME &> /dev/null
# 最后判断是否创建成功
if [ $? -eq 0 ]
then
echo "$UNAME , Create success"
else
echo "$UNAME , Create failure"
fi
fi
done