Quiero buscar todos los scripts ksh presentes en el directorio raíz y sacar la ruta del directorio y verificar si ese directorio se creó / existe o no. este es el script ksh de muestra? ¿Por favor ayuda con esto?

cd /home/edwprod/cormis/bin
if [ -f /home/edwprod/cormis/bin/churn.txt ]
then
echo " data not loaded in the table"
exit 0
else
cd /home/edwprod/edw/cfg
echo "XFB process is about to start"
/home/edwprod/edw/cfg/AUTOMATE_XFB_ADVISOR.ksh
fi
/osmf/mgmt/scheduler/edw/ROMEO/bin >cat EDWADVCHR.ksh
if [ -f /home/edwprod/cormis/bin/churn.txt ]
then
        cd /home/edwprod/cormis/bin/
        rm -f churn.txt
fi
/home/edwprod/cormis/bin/edw_etl_adv_churn_error.ksh CO_POP_ADVSR_DSCN_CHURN_I P
-1
AruM 19 dic. 2011 a las 15:21
2
Tu pregunta no tiene sentido. Si tiene una lista de archivos ksh de un directorio raíz, por supuesto que su directorio existe, ¿cómo podrían existir los archivos de otra manera? Por favor, intente explicarlo mejor. Además, ¿qué tiene que ver ese guión con tu pregunta?
 – 
Mat
19 dic. 2011 a las 15:26
Puede que se haya perdido parte del directorio. Por ejemplo / home / edwprod / cormis / bin, este directorio se creó pero se perdió al crear / home / edwprod / cormis / log o / home / edwprod / edw / cfg. Solo cuando ejecute este script, llegaré a saber que faltaron dos directorios. ¿Tenía sentido?
 – 
AruM
19 dic. 2011 a las 15:35

1 respuesta

La mejor respuesta

Aquí hay un script de ejemplo que prueba si existe una lista de directorios o no.
Imprimirá los nombres de los directorios que faltan y saldrá con un código de retorno distinto de cero si falta uno de ellos.

#! /bin/sh
dirs_to_check="/home/edwprod/cormis/bin
               /home/edwprod/cormis/log
               /home/edwprod/edw/cfg"

ok=1
for dir in $dirs_to_check ; do
    if [ ! -d $dir ] ; then
        echo "Directory $dir does not exist"
        ok=0
    fi
done

if [ $ok -ne 1 ] ; then
    exit 1
fi

Puede arreglar este script para crear los directorios que faltan si lo desea.

Sin embargo, no es realmente necesario. Simplemente podría adaptar lo que tiene y verificar que cd funcionó:

cd /some/path
if [ $? -ne 0 ] ; then
  # you failed to cd: either the directory doesn't exist, 
  # or you have permission issues
fi
0
Mat 19 dic. 2011 a las 15:42