将 if 语句添加到现有的 while 循环中

将 if 语句添加到现有的 while 循环中

我必须在我的 while 循环中添加一个 if 语句。

当我写入 时./scriptname 1,它会执行我的 while 循环。
当我改为写入 时./scriptname hello,它仍会执行我的 while 循环。

我想要它做的是,echo "no"如果我在后面添加字母,./scriptname但如果我在后面添加数字,则执行 while 循环./scriptname

有谁知道我在所附脚本中做错了什么?

在此处输入图片描述

答案1

最好使 if-then 语句尽可能简短,这样就不需要语句了else

#!/bin/bash

x=$1
y=$2

if [[ $x =~ (^$|[^0-9]) ]]; then
    echo "no"
    exit 0
fi
while (( $x <= 3 )); do
    echo "$x $y"
    ((x++))
    sleep 5
done

或者使用 for 循环:

for ((z=3; $x<=$z; x++)); do
    echo "$x $y"
    sleep 5
done

相关内容