for ((变量名;循环条件;更新变量))
命令序列
done
for 变量名 in 取值列表
do
命令序列
done
while [ 条件表达式 ]
do
命令序列
done
实验:
代码
#!/bin/bash
RED='\033[0;31m'
GREEN='\033[0;32m'
RESET='\033[0m'
i=0
for ((;i!=9;))
do
read -p "请输入用户名: " user
if [ -z $user ];then
echo -e "${RED}用户名不能为空!请输入用户名!" && exit
fi
if [ -e /home/$user ];then
read -p "用户已经存在,是否修改用户密码? yes | no " input
if [ $input == "yes" ];then
read -p "请输入修改的用户密码" password3
echo $password3 | passwd $user --stdin
echo "修改成功,将创建新用户" && sleep 5 && clear && echo "用户名: $user 密码: $password3" >> usr_backup.txt
continue
elif [ $input == "no" ];then
echo -e "${GREEN}不修改已存在用户的密码,将重新创建用户${RESET}"
continue
else
echo -e "${RED}输入参数错误,将重新创建用户${RESET}"
continue
fi
fi
read -s -p "请输入密码: " password
echo
read -s -p "再次输入密码: " password2
[ $password == $password2 ] && echo -e "${GREEN}密码校验成功${RESET}"
echo $password2 > password.txt
[ $password != $password2 ] && echo -e "${RED}密码不一致,请重新输入${RESET}" && exit
read -p "用户名与密码校验成功,是否创建用户 yes|no:" input2
if [ $input2 == "yes" ];then
useradd $user
sleep 0.5
echo "$password2" | passwd $user --stdin
echo -e "${GREEN}用户已创建${RESET}"
sleep 0.5
echo -e "用户名: $user 密码: $password2" >> usr_backup.txt
sleep 1
echo -e "${GREEN}用户信息${RESET}"
tail -1 /etc/shadow
echo -e "${GREEN}用户列表${RESET}"
sleep 5
clear
ls /home
sleep 2
read -p "是否还需要创建新用户 yes | no " a
if [ $a != "yes" ];then
exit
fi
else
echo "已退出"
fi
done

#!/bin/bash
RED='\033[0;31m'
GREEN='\033[0;32m'
RESET='\033[0m'
while [ true ]
do
read -p "请输入编号
1:创建用户,设置密码
2:设置修改本机IP地址
3:服务状态
4:计算器
5:退出
:" input
case $input in
1)
i=0
for ((;i!=9;))
do
read -p "请输入用户名: " user
if [ -z $user ];then
echo -e "${RED}用户名不能为空!请输入用户名!" && break
fi
if [ -e /home/$user ];then
read -p "用户已经存在,是否修改用户密码? yes | no " input
if [ $input == "yes" ];then
read -p "请输入修改的用户密码" password3
echo $password3 | passwd $user --stdin
echo "修改成功,将创建新用户" && sleep 5 && clear && echo "用户名: $user 密码: $password3" >> usr_backup.txt
continue
elif [ $input == "no" ];then
echo -e "${GREEN}不修改已存在用户的密码,将重新创建用户${RESET}"
continue
else
echo -e "${RED}输入参数错误,将重新创建用户${RESET}"
continue
fi
fi
read -s -p "请输入密码: " password
echo
read -s -p "再次输入密码: " password2
[ $password == $password2 ] && echo -e "${GREEN}密码校验成功${RESET}"
echo $password2 > password.txt
[ $password != $password2 ] && echo -e "${RED}密码不一致,请重新输入${RESET}" && exit
read -p "用户名与密码校验成功,是否创建用户 yes|no:" input2
if [ $input2 == "yes" ];then
useradd $user
sleep 0.5
echo "$password2" | passwd $user --stdin
echo -e "${GREEN}用户已创建${RESET}"
sleep 0.5
echo -e "用户名: $user 密码: $password2" >> usr_backup.txt
sleep 1
echo -e "${GREEN}用户信息${RESET}"
tail -1 /etc/shadow
echo -e "${GREEN}用户列表${RESET}"
sleep 5
clear
ls /home
sleep 2
read -p "是否还需要创建新用户 yes | no " a
if [ $a != "yes" ];then
break
fi
else
echo "已退出"
fi
done;;
2)
read -p "请输入网卡名称:ens- " name
if [ -e /etc/sysconfig/network-scripts/ifcfg-ens$name ];then
read -p " 同名网卡已存在,是否修改配置文件信息 yes | no :" input2
if [ $input2 == "yes" ];then
vim /etc/sysconfig/network-scripts/ifcfg-ens$name
else
break
fi
else
read -p "无同名网卡,是否创建一个新的网卡配置文件 yes | no :" input2
if [ $input2 == "yes" ];then
read -p "请输入IP地址:192.168.x.x " ip
read -p "请输入网关地址:192.168.x.x " gateway
read -p "请输入DNS地址:" dns
touch /etc/sysconfig/network-scripts/ifcfg-ens$name
echo "TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens$name
UUID=99091610-7b81-479e-9b14-26819532bad3
DEVICE=ens$name
ONBOOT=yes
IPADDR=$ip
PREFTX=24
GATEWAY=$gateway
DNS1=$dns
DNS2=8.8.8.8" > /etc/sysconfig/network-scripts/ifcfg-ens$name
echo "创建成功,正在重启网络服务"
sleep 1
systemctl restart network
echo " 网络信息: "
cat /etc/sysconfig/network-scripts/ifcfg-ens$name
else
break
fi
fi;;
3)
while [ true ]
do
read -p " 请输防火墙入服务状态 start | stop | restart | status | exit : " input3
case $input3 in
start)
echo "正在启用防火墙"
sleep 1
systemctl start firewalld.service;;
stop)
echo "正在关闭防火墙"
sleep 1
systemctl stop firewalld.service;;
restart)
echo "正在重启防火墙"
sleep 1
systemctl restart firewalld.service;;
status)
echo "查看防火墙状态"
sleep 1
systemctl status firewalld.service;;
exit)
echo "退出"
break;;
esac
done;;
4)
for ((i;;))
do
read -p "请输入第一个数字:" a
read -p "请输入第二个数字:" b
read -p "请输入你要进行的运算:
输入1:执行加法
输入2:执行减法
输入3:执行乘法
输入4:执行除法
输入5:执行取余
输入6:退出计算器 " c
case $c in
1)
echo $a+$b=`expr $a + $b`
;;
2)
echo $a-$b=`expr $a - $b`
;;
3)
echo $a*$b=`expr $a \* $b`
;;
4)
echo $a÷$b=`expr $a / $b`
;;
5)
echo $a%$b=`expr $a % $b`
;;
6)
echo " *已退出*"
break
esac
done;;
5)
echo " 退出脚本,期待下次使用 "
sleep 1
clear
break;;
*)
echo " 请重新输入 "
continue;;
esac
done

被折叠的 条评论
为什么被折叠?



