Я попробовал следующий сценарий
#!/bin/bash
var1="Test 1"
var2="Test 2"
if [ "$var1"="$var2" ]
then
echo "Equal"
else
echo "Not equal"
fi
Он дал мне Equal
. Хотя он должен был напечатать Не равно
Только когда я вставил пробел вокруг =
, он работал как задумано
if [ "$var1" = "$var2" ]
и напечатал Не равно
Почему? Почему "$ var1" = "$ var2"
не то же самое, что "$ var1" = "$ var2"
?
Более того, когда я написал if ["$ var1" = "$ var2"]
, он дал
line 4: [: Test 1=: unary operator expected
Что это значит? Почему ожидаемый унарный оператор?