Что будет Zsh эквивалентно :${VAR :=значение}

Попробуйте otf -kopubworld , который был описан как «многоязычный (корейский, йетхангул, расширенный китайский, японский, расширенный латинский, кириллица, арабский, иврит, деванагари )шрифты TrueType/OpenType. Корейской ассоциацией издателей .

0
14.05.2021, 22:29
1 ответ

На самом деле,

: ${VAR:=defaultValue}

правильно вzsh(при условии, что вы не включили globsubstопцию ), но не в других оболочках. В других Bourne -, таких как оболочки, это будет представлять собой уязвимость типа «отказ в обслуживании», если вы не включите параметры noglob, как показано в Последствия для безопасности, если вы забудете указать переменную в кавычках в оболочках bash/POSIX .

В них вам понадобится

: "${VAR:=defaultValue}"

zshподдерживает эти операторы Борна и даже вводит пару своих собственных в том же духе:

  • ${VAR::=value}безоговорочно присваивает valueпеременной (и расширяет до результата ). Это полезно в zsh, так как его можно комбинировать с другими операторами раскрытия параметров или флагами.
  • ${:-value}(т. е. с опущенным VAR)расширяется до value. Опять же полезно в сочетании с другими операторами.

Другой вариант здесь:

VAR=${VAR:-defaultValue}

Это было бы нормально в zsh и во всех других -подобных оболочках, подобных Bourne, и могло бы более ясно передать смысл.

7
28.07.2021, 11:32

Теги

Похожие вопросы