Я новичок в скриптах bash.
Как проверить значение NULL в скриптах оболочки Linux или Unix?
Вы можете быстро проверить наличие нулевых или пустых переменных в скриптах оболочки Bash.
Вам необходимо передать параметр -z или -n в команду test или команду if или использовать условное выражение.
На этой странице показано, как узнать, имеет ли переменная оболочки bash значение NULL или нет с помощью команды test.
Чтобы узнать, является ли переменная bash нулевой:
Вернуть true, если переменная bash не установлена или имеет нулевую (пустую) строку:if [ -z “$var” ]; then echo “NULL”; else echo “Not NULL”; fi
Другой вариант, чтобы определить, установлена ли переменная bash в NULL:[ -z “$var” ] && echo “NULL”
Определите, является ли переменная bash NULL: [[ ! -z "$var" ]] && echo "Not NULL" || echo "NULL"
Давайте посмотрим синтаксиc команды test и примеры в деталях.
Синтаксис для команды if следующий:
my_var="nixCraft" if [ -z "$my_var" ] then echo "\$my_var is NULL" else echo "\$my_var is NOT NULL" fi
|
или
my_var="" if test -z "$my_var" then echo "\$my_var is NULL" else echo "\$my_var is NOT NULL" fi |
Другой вариант, чтобы проверить, является ли переменная оболочки bash NULL или нет
[ -z "$my_var" ] && echo "NULL" [ -z "$my_var" ] && echo "NULL" || echo "Not NULL" |
или
[[ -z "$my_var" ]] && echo "NULL" [[ -z "$my_var" ]] && echo "NULL" || echo "Not NULL"
|
или
## Check if $my_var is NULL using ! i.e. check if expr is false ## [ ! -z "$my_var" ] || echo "NULL" [ ! -z "$my_var" ] && echo "Not NULL" || echo "NULL" [[ ! -z "$my_var" ]] || echo "NULL" [[ ! -z "$my_var" ]] && echo "Not NULL" || echo "NULL"
|
Как найти значение NULL в оболочке, если есть условие в Unix
-N возвращает TRUE, если длина STRING отлична от нуля. Например:
#!/bin/bash var="$1" if [ ! -n "$var" ] then echo "$0 - Error \$var not set or NULL" else echo "\$var set and now starting $0 shell script..." fi
|
Пример: определить, является ли переменная bash NULL
Следующий скрипт оболочки показывает различные возможности оболочки на основе bash/sh/posix:
#!/bin/bash # Purpose - Test for NULL/empty shell var # Author - Vivek Gite {htttps://www.cyberciti.biz} under GPL 2.0+ DEMO="cyberciti.biz" HINT="" ##################################### # Do three possibilities for $DEMO ## ##################################### for i in 1 2 3 do case $i in 1) DEMO="nixcraft.com"; HINT="value set";; 2) DEMO=""; HINT="value set to empty string";; 3) unset DEMO; HINT="\$DEMO unset";; esac ############################################### # Update user with actual values and action # $DEMO set to a non-empty string (1) # $DEMO set to the empty string (2) # $DEMO can be unset (3) ################################################ echo "*** Current value of \$DEMO is '$DEMO' ($HINT) ***" ######################################################################## ## Determine if a bash variable is NULL, set, unset or not set at ALL ## ######################################################################## if [ -z "${DEMO}" ]; then echo "DEMO is unset or set to the empty string" fi if [ -z "${DEMO+set}" ]; then echo "DEMO is unset" fi if [ -z "${DEMO-unset}" ]; then echo "DEMO is set to the empty string" fi if [ -n "${DEMO}" ]; then echo "DEMO is set to a non-empty string" fi if [ -n "${DEMO+set}" ]; then echo "DEMO is set, possibly to the empty string" fi if [ -n "${DEMO-unset}" ]; then echo "DEMO is either unset or set to a non-empty string" fi done