首页 > 解决方案 > 获取用户输入并检查它,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

标签: shellif-statementunixwhile-loop

解决方案


如果您试图获取数字并检查它直到它变成整数,请尝试以下代码。

#!/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

推荐阅读