bash неожиданный токен, затем ошибка
Я написал скрипт bash и получаю сообщение об ошибке при тестировании условия, является ли переменная пустой или нет.
Ниже приведен пример сценария:
Я не упомянул команды, которые выполняются для присвоения значений переменным a и fne, но
#! /bin/bash
for f in /path/*
do
a=`some command output`
fne=`this command operates on f`
if[ -z "$a" ]
then
echo "nothing found"
else
echo "$fne" "$a"
fi
done
ошибка: синтаксическая ошибка рядом с неожиданным токеном, "затем".
Я попробовал другой вариант, как это:
#! /bin/bash
for f in /path/*
do
a=`some command output`
fne=`this command operates on f`
if[ -z "$a" ]; then
echo "nothing found"
else
echo "$fne" "$a"
fi
done
опять та же ошибка.
когда я пытаюсь сравнить этот путь:
if[ "$a" == "" ]; then
опять та же ошибка.
Я не уверен, что является причиной ошибки. Значение переменной a выглядит следующим образом:
Что-то с этим (1): [x, y]
он содержит пробелы, скобки, запятую, двоеточие. Я заключаю имя переменной в двойные кавычки для сравнения.