Bash - While Loop

0 linux bash shell ubuntu

这个while循环我遇到了麻烦.这是我目前得到的错误:[::预期一元运算符(第3行)

这是我的代码:

    #!/bin/bash

while [ "$option" <= 3 ]; do
    echo "1) View 'HelloWorld' Text";
    echo "2) View 'MyName' Text";
    echo "3) View 'HappyFall' Text";
    echo "4) Exit\n";

    read -p "Please choose your option using numbers 1-4: " option;
        if [ "$option" == 1 ]
        then
            cat HelloWorld
        elif [ "$option" == 2 ]
        then
            cat MyName
        elif [ "$option" == 3 ]
        then
            cat HappyFall
        else
        echo "Exiting...";
        fi
done
Run Code Online (Sandbox Code Playgroud)

Mr.*_*ama 6

<=在bash脚本中不是有效的比较,但是-le(小于或等于)是.

脚本中有两种不同类型的比较:字符串和数字.

蜇伤通常使用==!=等于或不相等.
但是,整数使用:

  • -eq 等于
  • -ne 不平等
  • -lt 少于
  • -le 小于等于
  • -gt 比...更棒
  • -ge 大于或等于

这是一个更全面的列表:http:
//mywiki.wooledge.org/BashGuide/TestsAndConditionals#Conditional_Blocks_.28if.2C_test_and_.5B.5B.29

  • 你从来没有宣称"选择"导致这一点.您将"空白"与数字进行比较.将`option`定义为某个默认值,如零. (4认同)