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]

он содержит пробелы, скобки, запятую, двоеточие. Я заключаю имя переменной в двойные кавычки для сравнения.

Ответы на вопрос(1)

Ваш ответ на вопрос