shell - 获取用户输入并检查它,linux
问题描述
我是unix的初学者,我正在尝试使用while循环来获取2个数字的用户整数输入,但我需要检查它是否是整数并重新询问是否不是,所以我尝试使用if语句while 循环。我无法让它工作,我在 while 和 if 循环中做错了什么?#!/bin/bash
echo “Enter first number:“
while read number1
do
if[[ $number1 ]] && [ $input -eq $input 2>/dev/null ]
then
echo “$number1”
else
echo "$number1 is not an integer or not defined.Try again”
fi
done
echo “Enter second number:“
while read number2
do
if[[ $number2 ]] && [ $input -eq $input 2>/dev/null ]
then
echo “$number2”
else
echo "$number2 is not an integer or not defined.Try again”
fi
done
解决方案
如果您试图获取数字并检查它直到它变成整数,请尝试以下代码。
#!/bin/bash
echo "enter number"
while read number1
do
if ! [[ $number1 =~ ^[0-9]+$ ]]
then
echo "number is not an integer"
else
echo "number is an integer"
exit;
fi
done
推荐阅读
- php - 如何在不输入文本字段的情况下使用 $_POST
- javafx - (JavaFX)如何做一个“什么都不做”的while循环
- c# - ASMX 没有返回到 JQuery,因此警报不起作用
- javascript - 改变
- python - 换行到txt文件python
- spring-boot - spring rest api 无法设置 Set-Cookie
- java - 如何创建从队列执行随机任务的线程池
- ios - 如何修复 SafeAreaLayoutGuide
- javascript - 与我的实时站点集成时,隐藏和显示 div 的 JQuery 代码不起作用
- sql - CASE WHEN 具有特定条件和范围条件