意外的运算符.sh文件

时间:2012-02-28 20:23:45

标签: bash

为什么这个代码不会运行? 它意味着允许用户在循环中向脚本输入一个数字,直到用户输入-1然后脚本应该终止 但是我一直收到这个错误:

-ne: unexpected operator

以下是代码:

#!/bin/sh

condition= 0

while [ $condition -ne -1 ]
do
        echo $condition
        read condition
done

4 个答案:

答案 0 :(得分:2)

您必须删除condition=0后的空格。由于空格是bash的自然标记分隔符,因此在放置空格时必须非常小心。在这种情况下,空格分隔假定程序(0)的初始化变量列表(在本例中为空值)。

答案 1 :(得分:2)

=之后的空格。删除它。

答案 2 :(得分:2)

好吧,很多人已经给了你答案,不过,如果你需要的话,只要看一下这个答案(只是另一种方式,更加冗长)。

#!/bin/sh

while read condition; do
 case "$condition" in
   -1) printf "GOOD BYE!\n"; break ;;
    *) printf "AGAIN, PUT A NUMBER!" ;;
  esac
done

答案 3 :(得分:-1)

在结束括号后添加分号;