[:-!eq:预期的二进制运算符

时间:2019-06-13 06:55:50

标签: bash

我对下面的代码有疑问 收到错误消息:

[: -!eq: binary operator expected]

如何解决此错误

RC=$?
if [ $RC -eq 0 ]; then 
    echo  File: $j Deletion Successfull >> $_Main/Status"_"$_date
else
    echo File: $j Deletion Failed >> $_Main/Status"_"$_date
fi

2 个答案:

答案 0 :(得分:1)

错误的根源:[:–le:预期的二进制运算符可能是您使用的是Unicode版本的“ –”,而不是常规的“-”。

检查键盘设置/映射,然后尝试使用常规的“-”。

答案 1 :(得分:1)

您的代码运行得很好。但是,如果我这样更改它:

#!/bin/sh

RC=$?
if [ $RC eq 0 ]; then
    echo  File:
else
    echo File:
fi

我遇到了同样的错误:

./test.sh: line 4: [: eq: binary operator expected
File:

这意味着您应该检查是否正在使用-eq而不是其他任何东西。问题很明显取决于您的情况。

在您的情况下,您似乎试图用!来抵消equals条件。这显然行不通。