Описание тега onelogin-otp
если [ ! $Комментарий ]
Я думаю, что ты хотел проверить, является ли $комментарий
не пустой, но это не то, что эта команда делает. Неупомянутую подстановка переменных подвергается генерации имени файла (подстановка) и разбиение на слова. Здесь, вы вводите несколько слов в вашем комментарии (Солнце Марс Венера
), поэтому [
команда видит ! Солнце Марс Венера
(4 аргумента), который не является допустимым синтаксисом. Всегда поставить двойные кавычки вокруг переменной подстановки:
если [ ! "$Комментарий" ]
В данном конкретном случае, это проверяет, является ли $комментарий
непуст. Это ярлык, потому что есть только две оболочки слова в скобках. В общем случае способ проверить, является ли строка непустая заключается в использовании -Н
оператор, а -з
оператор проверяет, является ли строка пустой.
если [ -з "$комментарий" ]
В КШ/Баш/ЗШ, вы можете использовать [[ ... ]]
построить вместо [ ... ]
команды. Одиночные скобки обыкновенный команду соблюдать обычные правила синтаксиса оболочки, в то время как двойные скобки-это специальный синтаксис оболочки со своими правилами. Нет слова разделения внутри двойных квадратных скобках, так что вы можете писать
если [[ -Z от $комментарий ]]
Двойные кавычки не больно.
То же самое касается , если [ ! $1 ]
, которые должны быть , если [и-Z "$1" ]
или если [[и-Z $1 ]]
.
Есть еще странность, что экспорт комментировать
переменной среды, когда комментарий, переданный в качестве аргумента функции, но не тогда, когда вы читаете его прочитать
встроенный. Если вам нужно пройти комментарий
к внешней программе, опустить слово экспорт
.