if单分支判断
- 当"条件成立"时执行命令序列
- 否则,不执行任何操作
if 条件测试
then 命令序列
fi
if 条件测试;then
命令序列
fi
案例
#!/bin/bash
read -p "请输入用户名:" user
read -s -p "请输入密码:" pass
if [ ! -z "$user" ];then
#useradd "$user"
echo "添加user: $user"
fi
if [ ! -z $"pass" ];then
#echo "$pass" | passwd --stdin "$user"
echo "修改密码为:$pass"
fi
echo
./user_v1.sh
请输入用户名:cao
请输入密码:添加user: cao
修改密码为:11
#!/bin/bash
read -p "请输入用户名:" user
read -s -p "请输入密码:" pass
if [ ! -z "$user" ] && [ ! -z "$pass" ];then
echo "add user: $user, password: $pass"
fi
echo
./user_v2.sh
请输入用户名:cao
请输入密码:
add user: cao, password: 111
#!/bin/bash
#-c(设置ping的次数),-i(设置ping的间隔描述),-W(设置超时时间)
ping -c2 -i0.1 -W1 $1 &>/dev/null
if [ $? -eq 0 ];then
echo "$1 is up"
else
echo "$1 is down"
fi
./ping.sh 192.168.0.155
192.168.0.155 is up
if多分支判断
- if双分支判断语法
- 相当于if语句嵌套
- 针对多个条件分别执行不同的操作
if 条件测试1;then
命令序列1
elif 条件判断2;then
命令序列2
... ...
else
命令序列n
fi
#!/bin/bash
#脚本自动生成10以内的随机数,根据用户的输入,输出判断结果
clear
num=$[RANDOM%10+1]
read -p "请输入1~10之间的整数:" guess
if [ $guess -eq $num ];then
echo "猜对了,你真棒,就是:$num"
elif [ $guess -lt $num ];then
echo "Oops,猜小了。"
else
echo "Oops,猜大了。"
fi
./guess_num.sh
请输入1~10之间的整数:5
猜对了,你真棒,就是:5
./guess_num.sh
请输入1~10之间的整数:5
Oops,猜大了。
小结
- 掌握基本if语法格式
- 编写脚本练习if语句的具体应用案例
- 判断用户输入的字符串是否为空
- 检测主机连通性
- 猜数字
网友评论