решение для контузии для nexenta/solaris

-z для zero или zero-length. Пустую строку часто называют пустой строкой. -n является непустым. В оболочках POSIX и с POSIX [ (иначе test) команда, все те эквивалентны:

  1. [ -z "$var" ] && echo empty
  2. [ ! -n "$var" ] && echo empty
  3. [ ! "$var" ] && echo empty
  4. ! [ "$var" ] && echo empty
  5. [ "$var" = "" ] && echo empty
  6. [ "${#var}" -eq 0 ] && echo empty
  7. test -z "$var" && echo empty
  8. [ "x$var" = x ] && echo empty
  9. case $var in
      "") echo empty
    esac
    

Но обратите внимание, что существуют (старые) реализации [ где только 8 работ надежно для некоторых значений $var как ! или =. 9 работы, надежные в каждой подобной Границе оболочке.

2
28.09.2014, 19:43
1 ответ

Я обновил свою систему, скачав исходный код 4.3 bash и патчи с ftp.gnu.org/gnu/bash и скомпилировав его, чтобы заменить существующий код. Она работает, теперь ждет новых патчей.

2
27.01.2020, 22:13

Теги

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