#!/bin/bash
function getComment(){
local lang=$1;
local theComment=$2;
if [$lang == "Java"] #Surprisingly, an error occurs here: prog.sh: line 6: [Java: command not found
then
echo "//"$theComment; return;
else
echo "Language not found!"; return;
fi
}
getComment "Java" "Whoo!";
exit $?
Я пишу Bash script, который сравнивает переменную с строковым литералом, и я использую [$lang == "Java"] (как показано выше), чтобы сравнить значение lang с "Java". Однако при этом сравнении возникает следующая ошибка:
stderr:
prog.sh: line 6: [Java: command not found
Я тоже пытался использовать [$lang -eq "Java"] и ($lang -eq "Java"), но эти инструкции тоже не работали, и они произвели точно такую же ошибку.
Почему возникает эта ошибка, и каков правильный способ сравнения локальной переменной с строковым литералом?