bash nieoczekiwany token, a następnie błąd

Napisałem skrypt basha i otrzymuję błąd podczas testowania warunku, czy zmienna jest pusta, czy nie.

Poniżej znajduje się przykładowy skrypt:

Nie wspomniałem o poleceniach wykonywanych w celu przypisania wartości do zmiennych a i fne, ale

#! /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

error: błąd składni w pobliżu nieoczekiwanego tokena, „then”.

Próbowałem innej odmiany takiej jak ta:

#! /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

znowu ten sam błąd.

kiedy próbuję porównać w ten sposób:

if[ "$a" == "" ]; then

znowu ten sam błąd.

Nie jestem pewien, co jest przyczyną błędu. Wartość zmiennej a jest następująca:

Coś z tym (1): [x, y]

zawiera spacje, nawiasy, przecinek, dwukropek. Porównuję nazwę zmiennej w cudzysłowach.

questionAnswers(1)

yourAnswerToTheQuestion