初学者的shell循环语句

本文详细介绍了Shell中的循环语句,包括for、while和until循环,提供了具体的实例,如批量添加用户、检查主机状态、实现九九乘法表、等腰三角形、用户在线消息发送和猜价格游戏等,适合初学者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

循环语句

for循环语句

for语句结构
读取不同的变量值,用来逐个执行同一组命令

语句结构
for 变量名 in 取值列表
do
	命令序列
done

批量添加用户

用户名存放在users.txt文件中,每行一个
初始密码均设为123456

[root@localhost opt]# vim user.txt
zhangsan
lisi
wangermazi
zhaoliu
tianji
wangba
vim user.txt

#!/bin/bash
list=$(cat /opt/user.txt)
for v in $list
  do
     useradd $v
     echo "123456" | passwd --stdin $v
     echo "创建用户${v}成功"
  done

根据IP地址检查主机状态

检测IP地址192.168.197.0-192.168.197.10段落
使用ping命令检测各主机的连通性

[root@localhost opt]# vim ip.sh 
#!/bin/bash
for ((i=1;i<=10;i++))
do
  ping -c 3 -i 0.2 -W 3 "192.168.197.$i" &> /dev/null
  if [ $? -eq 0 ]
        then
        echo "Host 192.168.197.$i is up"
  else
        echo "Host 192.168.197.$i is down"
  fi
done

shell中let命令

let 对整数进行数学运算

let和双小括号 (( )) 一样,let 命令也只能进行整数运算,不能对小数(浮点数)或者字符串进行运算。

语法格式
let 表达式
或
let "表达式"
或
let '表达式'
以上方式都等价于 ((表达式))

#!/bin/bash
for ((i=1;i<=10;i++));do
echo $i
done

#!/bin/bash
for ((i=1;i<=100;i+=2));do
 let sum+=$i
done
echo "$sum"

while循环语句

while语句结构
重复测试某个条件,只要条件成立则反复执行

语句结构
while 条件测试操作
do
命令序列
done

九九乘法表

#!/bin/bash
for ((i=1;i<=9;i++))
do
  for ((j=1;j<=i;j++))
  do
  sum=$[$i*$j]
  echo -n "$i*$j=$sum "
  done
echo
done

等腰三角形

#!/bin/bash
for ((i=1;i<=5;i++))
do
        for ((k=5;k>=i;k--))
        do
        echo -n " " 
        done

        for ((j=1;j<=2*i-1;j++))
        do
        echo -n "*"
        done
echo ""
done

until语句结构

重复测试某个条件,只要条件不成立则反复执行
until 条件测试操作
do
命令序列
done

为指定用户发送在线消息

若用户不在线(未登录系统),则每5s试一次,直至用户登录系统后再发送信息,用户名与消息通过位置参数传递给脚本
1.位置参数个数大于
2.姓名属于系统用户 /etc/passwd
3.是否在线 until who
4.发送信息 echo “ ” | write 用户名

#!/bin/bash
username=$1
if [ $# -lt 1 ];then
echo "Usage : 'basename $0'  <username> [<message>]"
        exit 1
fi
if grep "$username" /etc/passwd > /dev/null;then :
else
        echo “not user”
        exit 2
fi
until who |grep "$username"  > /dev/null;do
        echo “user not login”
        sleep 5
done     

猜价格游戏

#!/bin/bash
num=$[RANDOM%101]
i=0
while true
do
let i++
read -p "请输入您猜测的价格(0-100)" a
if [ $a -eq $num ];then
echo "恭喜你猜对了"
break
elif [ $a -lt $num ];then
echo "低了"
else
echo "高了"
fi
done
echo "你一共猜了${i}次"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值