Есть ли разница между следующими тестами?Проверка пустой строки в bash
[[ "$STRING" = "" ]] && exit 1;
[[ "x$STRING" = "x" ]] && exit 1;
[[ -z $STRING ]] && exit 1;
Есть ли разница между следующими тестами?Проверка пустой строки в bash
[[ "$STRING" = "" ]] && exit 1;
[[ "x$STRING" = "x" ]] && exit 1;
[[ -z $STRING ]] && exit 1;
Нет, они все одинаковые. Но пара защитных привычек.
$STRING
в -z
один, а${STRING-}
только в случае, если его не установлена на всехПо-видимому, все они выполняют одно и то же, то есть проверяют, является ли данная строка ее «пустой», за исключением того, что первая проверяет, является ли строка $ ее пустой, вторая проверяет, есть ли x plus $ string равна x и, наконец, -z, которая проверяет длину. Лично я бы сказал, что это гораздо более реалистично.
Вам не нужно указывать $ string в -z, а также в первом примере, особенно если вы знаете, что строка $ string будет содержать строку. –
Цитата строк является хорошей привычкой и имеет большое значение, если вы выполняете более сложные тесты, такие как: [[-z "$ STRING" && -z "$ OTHER"]] '. –
Зачем вы цитируете '$ STRING' при использовании' [['ключевое слово? – toxalot