bash脚本继续提示我通过1或2

时间:2016-12-05 21:34:21

标签: linux shell sh

我希望创建一个shell脚本,它可以将(读取)1和2作为输入。我尝试了下面的脚本,但看起来缺少了一些东西。以下是我的要求:

  1. 没有输入时应该回显。
  2. 它应接受值1或2
  3. 如果通过1或2之外的任何其他值,它应该抛出错误。
  4. 如果不满足上述任何一种情况,则应返回阅读并再次询问用户输入。
  5. 使用while循环可能是错误的。但这是我到目前为止所实现的目标。

    #!bin/sh
    while :
    echo "enter value for a:";read -r a;  do
             if [ -z "${a}" ]; then
             echo "That was empty, do it again!"
            elif [ "${a}" -eq "1" ]  || [ "${a}" -eq "2" ]; then
                    ## echo "Checking now..."
                    echo "value passed is :$a"
                    echo "Condition success"
                 elif [ "${a}" -ge "3" ]
            then
            echo "Select either option :1 or :2 "
        fi
    break
    done
    

    输出

    当我通过1

    . Test_input2.sh
    enter value for a:
    1
    value passed is :1
    Condition success
    

    当我什么都没有通过时

    . Test_input2.sh
    enter value for a:
    
    That was empty, do it again!
    

    我希望能够提示用户输入,直到他给我预期的输入,即1或2.我怎么能把它放到循环中?

0 个答案:

没有答案