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

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

oben wirft Fehler:[: -eq: unärer Operator erwartet

[: -eq: unary operator expected

Wie dies [[ ${TABLE_ID} -eq "" ]] mit aus doppelten eckigen Klammern zu fixieren.

+4

'-eq' ist für numerischen Vergleich, benutze' [$ {TABLE_ID} = ""] ' – anubhava

+0

Können wir etwas im Export machen? – user2711819

+0

@anubhava Sie müssen das Argument zu "-z" zitieren oder es funktioniert nicht so, wie Sie es wollen. –

Antwort

4

Prüfzeichengleichheit mit =.

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

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

Sie -z verwenden können, um zu testen, ob eine Variable leer ist:

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

Von man test

:

ein Beispiel
-z STRING 
     the length of STRING is zero 

Siehe :

$ 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 
Verwandte Themen