На этот вопрос уже есть ответ здесь:
Я знаю, что могу проверить пустую строку в Bash с -z
вот так:
if [[ -z $myvar ]]; then do_stuff; fi
но я вижу много кода, написанного как:
if [[ X"" = X"$myvar" ]]; then do_stuff; fi
Этот метод более переносимый? Является ли это просто историческим мусором, оставшимся до дней -z
? Это для оболочек POSIX (хотя я видел его использование в сценариях, нацеленных на bash
)? Готов к моему уроку истории / переносимости.
Тот же вопрос был задан по поводу сбоя сервера, что и Как определить, пуста ли переменная bash? , но никто не объяснил почему ] вы видите код с элементами X ""
.