2012-02-23 30 views
5

Me pregunto por qué está funcionando la siguiente secuencia de comandos minúscula. Creé dfFile en/data directory pero el script no imprime las expresiones en la declaración if.Compruebe si el archivo existe en ksh

#!/bin/ksh 
DATAFILE="/data/dfFile" 
echo $DATAFILE 
#df -h>/data/dfFile 
    if [[ -e DATAFILE ]] 
    then 
    echo "sa" 
    echo $DATAFILE 
    df -h > $DATAFILE 
    fi 
+0

si [[-e $ {} DATAFILE]] que resuelto el problema. – mibzer

Respuesta

19

Eso debería leer

if [[ -e "$DATAFILE" ]] 
+5

Solo para agregar que cuando se usan corchetes dobles, las variables expandidas no están sujetas a la división de palabras/campos de shell (por lo que las comillas dobles podrían evitarse). Eso, por supuesto, no es el caso cuando se usa la construcción '[...]'. –

Cuestiones relacionadas