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