2015-01-30 5 views
8
#!/bin/bash  
export PROCNAME=test 
export TABLE_ID=0 

if [ ${TABLE_ID} -eq "" ]; then 
     echo hello 
fi 

выше броски ошибка:[: -eq: ожидается унарный оператор

[: -eq: unary operator expected

Как исправить это с вне двойных квадратных скобках [[ ${TABLE_ID} -eq "" ]].

+4

'-eq' для числового сравнения, используйте' [$ {TABLE_ID} = ""] ' – anubhava

+0

можем ли мы что-то сделать в экспорте? – user2711819

+0

@anubhava Вам нужно процитировать аргумент '-z' или он не работает так, как вы этого хотите. –

ответ

4

Испытание равенства строк с =.

#!/bin/bash  
export PROCNAME=test 
export TABLE_ID=0 

if [ "${TABLE_ID}" = "" ]; then 
    echo hello 
fi 
4

Вы можете использовать -z, чтобы проверить, является ли переменная пуста:

if [ -z "$variable" ]; then 
    ... 
fi 

От man test:

-z STRING 
     the length of STRING is zero 

Смотрите пример:

$ r="roar" 
$ [ -z "$r" ] && echo "empty" || echo "not empty" 
not empty 
$ r="" 
$ [ -z "$r" ] && echo "empty" || echo "not empty" 
empty 
1
#!/bin/bash  
export PROCNAME=test 
export TABLE_ID=0 

[ -z ${TABLE_ID} ] && echo hello 
Смежные вопросы