2011-07-12 6 views

ответ

11

Нет, они все одинаковые. Но пара защитных привычек.

  • Вы должны процитировать $STRING в -z один, а
  • Если вы работаете с опцией -u (я всегда делаю), то вы должны ссылаться на возможно опциональный переменную ${STRING-} только в случае, если его не установлена на всех
+0

Зачем вы цитируете '$ STRING' при использовании' [['ключевое слово? – toxalot

0

По-видимому, все они выполняют одно и то же, то есть проверяют, является ли данная строка ее «пустой», за исключением того, что первая проверяет, является ли строка $ ее пустой, вторая проверяет, есть ли x plus $ string равна x и, наконец, -z, которая проверяет длину. Лично я бы сказал, что это гораздо более реалистично.

+0

Вам не нужно указывать $ string в -z, а также в первом примере, особенно если вы знаете, что строка $ string будет содержать строку. –

+0

Цитата строк является хорошей привычкой и имеет большое значение, если вы выполняете более сложные тесты, такие как: [[-z "$ STRING" && -z "$ OTHER"]] '. –

Смежные вопросы