似乎无法在BASH中发现此错误,因为它存在语法错误

时间:2011-09-24 02:07:15

标签: bash

在这里找不到错误。当我运行这个程序时,BASH出现了“[:17:意外的运算符”我用一个以.c结尾的参数和一个.java中的一个尝试了它但似乎都不起作用。

EXT=`echo $1 | cut -f2 -d"."`

if [ "$EXT" == "c" ]; then
    NAME=`echo $1 | cut -f1 -d"."`
    gcc -Wall -o "$NAME" "$1"   
elif [ "$EXT" == "java" ]; then
    NAME=`echo $1 | cut -f1 -d"."`
    gcj -c -g -O $1 && gcj --main="$NAME" -o "$NAME" "${NAME}.o"
else    
    echo "hm... I don't seem to know what to do with that"
fi

2 个答案:

答案 0 :(得分:5)

test(又名[)没有==运算符。字符串相等性为=。是的,这有点奇怪。

此外,case对此很好:

case "$1" in
  *.java)
    # java stuff here
    ;;
  *.c)
    # c stuff here
    ;;
  *)
    # otherwise...
esac

答案 1 :(得分:2)

全部改变

if [ "$EXT" == "c"/"java" ];

if [ "$EXT" = "c"/"java" ];