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

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

powyżej wyrzuca błąd:[: eq: operator jednoargumentowy spodziewać

[: -eq: unary operator expected

Jak rozwiązać ten problem z dwuosobowa nawiasach kwadratowych [[ ${TABLE_ID} -eq "" ]].

+4

'-eq' służy do porównania liczbowego, użyj' [$ {TABLE_ID} = ""] ' – anubhava

+0

czy możemy coś zrobić w eksporcie? – user2711819

+0

@anubhava Musisz podać argument do '-z' lub nie działa tak, jak chcesz. –

Odpowiedz

4

Równość w łańcuchu testowym z =.

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

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

-z można użyć do sprawdzenia, czy zmienna jest pusta:

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

Od man test:

-z STRING 
     the length of STRING is zero 

Zobacz przykład:

$ 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 
Powiązane problemy