Shell脚本练习薄首页

文件测试所用的参数

操作符 作用
-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

猜你喜欢

转载自blog.csdn.net/xphouziyu/article/details/82586626