#!/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")
, но эти инструкции тоже не работали, и они произвели точно такую же ошибку.
Почему возникает эта ошибка, и каков правильный способ сравнения локальной переменной с строковым литералом?