Эта строка:
if [ ignored-deps-are-not-set ]
проверяет, является ли строка ignored-deps-are-not-set пустой или нет. Возвращает true, потому что строка не пуста. Он не выполняет команду (и, следовательно, функцию).
Если вы хотите проверить, установлена ли переменная, используйте одно из обозначений ${variable:xxxx}
.
if [ ${ignored_deps+x} ]
then echo "ignored_deps is set ($ignored_deps)"
else echo "ignored_deps is not set"
fi
Обозначение ${ignored_deps+x}
оценивается как x
, если установлено $ignored_deps
, даже если оно установлено в пустую строку. Если вы хотите установить только непустое значение, используйте также двоеточие:
if [ ${ignored_deps:+x} ]
then echo "ignored_deps is set ($ignored_deps)"
else echo "ignored_deps is not set or is empty"
fi
Если вы хотите выполнить функцию (при условии, что в имени функции работает тире), то:
if ignored-deps-are-not-set
then echo "Function returned a zero (success) status"
else echo "Function returned a non-zero (failure) status"
fi