я хочу написать if
заявление в следующем виде: -
if [$x == "string"]
then
echo "ok"
fi
но появилась следующая ошибка
./bash_if.sh[6]: [0: not found.
[
после него нужен пробел, потому что [
на самом деле команда (/usr/bin/[
в Linux, хотя у bash есть встроенная версия, которую он использует). Без пробела bash преобразует $ x в значение, а затем пытается запустить команду [0
, как если бы вы набрали lssomedir
или echohi
.
Кроме того, если вы тестируете строки, вы должны заключить в кавычки $ x:
if [ "$x" == "string" ]
В противном случае, если $ x пуст или не задан, вы получите сообщение об ошибке, потому что без кавычек после "расширения" $ x это будет выглядеть как
if [ == "string" ]