Я должен сделать, добавляют если оператор к моему циклу с условием продолжения. При записи./scriptname 1 это выполняет мой в то время как lopp. Когда я вместо этого пишу./scriptname привет, он все еще выполняет мой цикл с условием продолжения. То, что я хочу, чтобы это сделало, повторить "нет", если я добавляю буквы после./scriptname, но выполняю цикл с условием продолжения, если я добавляю числа после./scriptname. Кто-либо знает то, что я сделал неправильно в присоединенном сценарии? введите описание изображения здесь
Это - хорошая практика для хранения if-then-statement максимально коротким, этот способ, которым Вам не нужно 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 ((z=3; $x<=$z; x++)); do
echo "$x $y"
sleep 5
done