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

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

sopra genera un errore:[: eq: operatore unario previsto

[: -eq: unary operator expected

come risolvere questo problema con fuori doppie parentesi quadre [[ ${TABLE_ID} -eq "" ]].

+4

'-eq' è per il confronto numerico, usa' [$ {TABLE_ID} = ""] ' – anubhava

+0

possiamo fare qualcosa in esportazione? – user2711819

+0

@anubhava È necessario citare l'argomento per '-z' oppure non funziona come si desidera. –

risposta

4

Test string uguaglianza con =.

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

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

È possibile utilizzare -z per verificare se una variabile è vuota:

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

Da man test:

-z STRING 
     the length of STRING is zero 

vedere un esempio:

$ 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 
Problemi correlati