Сценарий оболочки, если переменная равна false? Солярис

Все,

В начале моего сценария оболочки я установил переменную с именем filespresent="false"

Эта переменная действует как флаг, чтобы указать позже в моих журналах сценария оболочки, если он нашел файл для обработки через SQLLoader.

Проблема в том, что мой оператор if не работает, он дает следующую ошибку

[ложь: не найдено

Вот мой код

if ["$filespresent" == "false"]
then
    echo ">>>No CSV files in : " $inbox " folder, skipped SQLLoader" >> script.log
fi

Я проверил учебник по сравнению строк здесь, возможно, Solaris отличается от Linux? http://www.tech-recipes.com/rx/209/bournebash-shell-scripts-string-comparison/


person tomaytotomato    schedule 24.10.2013    source источник


Ответы (1)


Вам нужны пробелы вокруг [ и ]. Сказать:

if [ "$filespresent" == "false" ]

[ — это команда. Произнесение ["$filespresent" заставляет оболочку интерпретировать его как один токен, а не как команду.


Оператор == недоступен в sh, вместо него используйте =:

if [ "$filespresent" = "false" ]
person devnull    schedule 24.10.2013
comment
Спасибо, теперь я получаю: неизвестный оператор == - person tomaytotomato; 24.10.2013
comment
@serupticious Кажется, вы используете sh. Оператор == недоступен в sh, используйте вместо него =. См. обновление выше. - person devnull; 25.10.2013