在这里找不到错误。当我运行这个程序时,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
答案 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" ];