for格式

for i in [取值列表] ~ 数字 字符串 命令的结果 序列
do
命令
done

案例1:测试1-255有多少个ip地址在线

  1. #!/bin/bash
  2. #案例:测试250-255有多少个ip地址在线
  3. sub_ip=120.77.146.
  4. for i in {250..254}
  5. do
  6. {
  7. all_ip=${sub_ip}${i}
  8. `ping -c1 -W1 ${all_ip} > /dev/null 2>&1`
  9. [[ $? -eq 0 ]] && echo "${all_ip}:可访问"
  10. }&
  11. done
  12. wait
  13. echo "所有测试完成"
  14. #{}& 指的是多线程,很快就全部执行完了
  15. #wait 是等待所有线程执行完毕

案例2:输入用户名和数量,批量创建用户,密码为123456

  1. #!/bin/bash
  2. read -p "请输入字符串" username
  3. [ -z ${username} ] && echo "请输入字符串" && exit 90001
  4. read -p "请输入一个整数" num
  5. [[ ! ${num} =~ ^[0-9]+$ ]] && echo "请输入整数" && exit 90002
  6. for i in `seq ${num}`
  7. do
  8. useradd ${username}${i} >/dev/null 2>&1
  9. echo "${username}${i} created sucess"
  10. echo 123456|passwd ${username}${i} --stdin|bash >/dev/null 2>&1
  11. done