Shell脚本基本控制语句

if then else fi

  1 #!/bin/bash
  2 ping -c 5 -i 0.2 -W 3 $1 &>  ./result.text
  3 if [ $? -eq 0 ]
  4 then
  5         echo "Host $1 is On-line."
  6 else
  7         echo "Host $1 is Off-lin."
  8 fi

  1 if [ -d /etc/fstab ]; then
  2     echo "/etc/fstab is a directory."
  3 else
  4     echo "/etc/fstab is not a directory."
  5 fi
  6 

if  then elif  then else fi

查询成绩等级

  1 #! /bin/bash
  2 read -p "enter your score (0-100):" GRADE
  3 if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ];then
  4         echo "$GRADE is Excellent"
  5 elif [ $GRADE -ge 70 ] && [ $GRADE -le 85 ];then
  6         echo "$GRADE is pass"
  7 else
  8         echo "$GRADE is fail"
  9 fi

 

 

for循环

为用户创建密码

#!/bin/bash

# 提示用户输入一个默认密码,并存储在变量 PASSWD 中
read -p "Enter the default password for new users: " PASSWD

# 循环遍历 users.txt 文件中列出的用户名
# 每次迭代将当前用户名存储在变量 UNAME 中
for UNAME in $(cat users.txt)
do
    # 使用 id 命令检查用户是否已存在
    id $UNAME &> /dev/null
    
    # 检查上一条命令的退出状态码,如果为 0,表示用户已存在
    if [ $? -eq 0 ]
    then
        # 如果用户已存在,则输出相应的消息
        echo "$UNAME already exists."
    else
        # 如果用户不存在,则创建新用户
        useradd $UNAME
        
        # 使用管道将密码传递给 passwd 命令,并设置为新用户的密码
        echo "$PASSWD" | passwd --stdin $UNAME &> /dev/null
        
        # 输出成功创建用户的消息,包括用户名和密码
        echo "$UNAME created successfully with password: $PASSWD"
    fi
done

 

 

while

#!/bin/bash

# 生成一个随机数作为物品价格,范围在 0-999 之间
PRICE=$((RANDOM % 1000))

# TIMES 变量用于记录猜测的次数,初始值为 0
TIMES=0

echo "Guess the item price (0-999)"

# 无限循环直到猜对为止
while true
do
    # 提示用户输入猜测的价格,并将其存储在变量 INT 中
    read -p "Enter your guess price: " INT
    
    # 每次猜测后,将 TIMES 变量的值加 1
    let TIMES++

    # 检查猜测的价格和物品价格是否相等
    if [ "$INT" -eq "$PRICE" ]; then
        echo "Bingo! You guessed it right."

        # 输出猜测的次数
        echo "Total guesses: $TIMES"

        # 跳出循环
        break
    elif [ "$INT" -gt "$PRICE" ]; then
        echo "Too high. Try again."
    else
        echo "Too low. Try again."
    fi
done

 case

#!/bin/bash

# 提示用户输入一个字符,并将其存储在变量 key 中
read -p "Enter a character: " key

# 使用 case 语句根据用户输入进行匹配
case "$key" in
    # 如果用户输入的是字母(包括大小写)
    [a-z] | [A-Z])
        echo "The entered character is a letter: $key"
        ;;
    # 如果用户输入的是数字
    [0-9])
        echo "The entered character is a number: $key"
        ;;
    # 如果用户输入的不是字母也不是数字
    *)
        echo "Input error: Invalid character"
esac

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MichstaBe#

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值