补充

挂载:让光盘和某个文件夹目录产生关联
一般情况下,每次登陆系统都要进行挂载 mount /dev/cdrom /mnt/,极其不方便,下面介绍一下自动挂载。首先进入目录vi /etc/fstab;其次设置参数 /dev/cdrom /mnt iso9600(本文镜像系统为RHEL7.3) defaults 0 0;进入末行模式,保存并退出。df -h 查看挂载情况


下面进入正题
shell脚本控制语句_第1张图片
test参数:
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为为一般文件
-r 测试当前用户是否有读取权限
-w 测试当前用户是否有写入权限
-x 测试当前用户是否有执行权限
判断完用户参数后,使用 $? 判断上一条命令输出结果的正确与否,正确返回0,错误返回非0。

逻辑运算与或非

与(&&):当两边同时成立,则返回0;只有前边语句正确才会继续判断后边的
或(||):当两边有一个成立,则返回0;前面错误,仍可以继续判断
非(!):判断是错误的,则返回0

比较运算

举个例子:echo "hello linux" > test.txt 该命令是将"hello linux"追加到test.txt文件中,并不表示大于号。所以在linux中用操作符来代替比较运算符,下面是linux中常用的一些操作符
shell脚本控制语句_第2张图片
shell脚本控制语句_第3张图片

流程控制语句

1.判断语句
a.if--单分支(如果。。。那么。。)
基本格式
shell脚本控制语句_第4张图片
举个栗子:
创建一脚本文件,并输入:
#!/bin/bash
DIR=$1
if [ ! -e $DIR ]
then mkdir -p $DIR
fi

上面的脚本功能为:输入一个参数并判断是否为目录,若不是则创建该目录
b.if--双分支(如果。。那么。。要不然。。。)
基本格式
shell脚本控制语句_第5张图片
再举个栗子:
创建一新的文本,输入:
#!/bin/bash
DIR=$1
if [ ! -e $DIR ]
then mkdir -p $DIR
else
echo "$DIR exist!"
fi

上面的脚本功能:输入一参数判断是否为目录,不是则创建该目录,是则显示 目录已创建
c.if---多分支
基本格式:
shell脚本控制语句_第6张图片
再举个栗子:
#!/bin/bash
read -p "input a number:" NUM
if [ $NUM -ge 90 ] && [ $NUM -le 100 ]
then echo "EXCELLENT"
elif [ $NUM -ge 80 ] && [ $NUM -le 89 ]
then echo "GOOD"
elif [ $NUM -ge 60 ] && [ $NUM -le 79 ]
then echo "PASS"
else
echo "FAIL"
fi
脚本功能:判断输入值,并显示对应评分
2.循环语句
for循环基本格式:
shell脚本控制语句
栗子:
#!/bin/bash
read -p "input a user used to passwd:" PASSWD
for USER_NAME in cat username
do
useradd $USER_NAME
echo "PASSWD" | passwd --stdin $USER_NAME
done
脚本功能:批量创建用户,并设置相同密码(用户名已在一文本中写好)
反引号``---反引号里是命令,则当作命令执行