Linux 第四节(shell脚本,IF,do,for)
Shell脚本
1.批处理式:
2.交互式:
脚本声明 #!/bin/bash
脚本注释 #fakba;kb
脚本命令 ls pwd
bash test.sh //执行test.sh脚本
echo "$0" //脚本名称
echo "$#,$" //总共接收到了几个参数,这些参数分别是什么
echo "$1,$3,$5" //分别是我们接收到的第1 3 5参数
[ -f /etc/fstab ] // 判断文件是否存在
echo $? //查看文件是否存在,1表示不存在,0表示存在
[ -d /dev ] //判断目录是否存在或者是否是一个目录
echo $? //查看目录是否存在或者是否是一个目录,1表示不存在,0表示存在
&& //若前面成功,则执行后面的,逻辑与
[ -d /etc ] && echo "ok" //判断ETC目录存在就在屏幕显示 ok
|| //若前面失败,则执行后面的,逻辑或
[ $user = root ] || echo "不是他,不是他" //如果当前登录用户不是root ,则显示不是他
! //取反值,逻辑非
[ ! $USER = root ] //判断当前登录用户不是root用户
[ `free -m | grep Mem: | awk '{print $4}‘` -lt 1024 ] && echo "Buzu" || echo "chongzu"
//提取以兆为单位的内存空闲值,小于1024就显示不足,大于1024显示充足
[ -z $HAHA ] //判断这个变量是否被使用过
echo $? //查看判断结果
if [ -e /madia/haha ] //判断这个文件是否存在
then
mkdir /madia/haha //新建一个文件
fi
ping -c 3 -i 0.2 -w 3 $1 &> /dev/null
//ping 3次,间隔0.2秒,最长响映时间3秒,将所有输出信息重定向到一个黑洞文件
if [ $? -eq 0 ]
then
echo "host $1 is on-line“
else
echo "host $1 is off-line"
fi
read -p "Enter:" GRADE //读取用户输入的信息
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ; then
echo "Excellent"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ];then
echo "Pass"
else
echo "Failure"
fi
read -p "Enter:“ PASSWD
for UNAME in `cat users.txt`
do
id $UNAME &> /dev/null
if [ $? -eq 0 ]
then
echo "$UNAME,Already exist"
else
useradd $UNAME &> /dev/null
echo "$PASSWD" | passwd --stdin $UNAME &> /dev/null //
fi
done
//检测网络在线
for IP int `cat ip.txt`
do
ping -c 3 -i 0.2 -w 3 $1 &> /dev/null
if [ $? -eq 0 ] ; then
echo "$IP is on-line"
else
echo "$IP is off-line"
fi
done