![]() |
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| Mover Comando problema y de salida | visingha | Programación de scripts de shell y | 10 | 09-13-2008 08:08 PM |
| Mover Comando problema y de salida | visingha | UNIX for Dummies Preguntas y Respuestas | 1 | 09-12-2008 02:14 AM |
| salida de clases de Java en ejecución en shell de Unix | mmcds | Programación de Alto Nivel | 2 | 08-02-2007 10:06 PM |
| control de salida de un script de shell | kdipankar | Programación de scripts de shell y | 2 | 05-09-2006 01:08 AM |
| Problema con el estado de salida | diganta | Programación de scripts de shell y | 1 | 09-28-2005 08:34 AM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
sh recursivo sub-depósito de salida problema
Hola
Estoy tratando de detectar el estado de salida de una función recursiva que estoy ejecutando como un sub-shell. A continuación una lista de parte del archivo de script de shell que estoy corriendo ... lo siento todavía un poco de su largo aliento: -- Código:
#!/bin/sh
addFile()
{
fileName="${1##*/}" # Extract filename from path.
if [ $fileName == "phil" ]
then
return 1 #Kick off error...
else
return 0
fi
}
addCommitFiles()
{
# Traverse to database directory or below
cd "$topDir/$1"
if [ $? != 0 ]
then
echo "topDir error $topDir/$1"
exit 1 # Treat as fatal error.
fi
# List all files/dirs in this directory.
ls | while read i
do
# Check if directory.
if [ -d "$i" ]
then
# Pass in full relative path to topDir.
( addCommitFiles "$1/$i" )
ret1=$? # This is never non-zero???
echo "RET=$ret1 != 1"
if [ $ret1 != 0 ]
then
echo "ERR2???"
exit 1 # Treat as fatal error.
fi
echo "ERR3"
else
echo "${rootDir}/$1/${i}"
addFile "$1/$i"
if [ $? != 0 ]
then
echo "ERR1"
exit 1 # We get this error and would exoect
fi
fi
done
exit 0
}
# Main
usrNam="XXX"
topDir=`pwd`
rootDir="./"
(addCommitFiles "./$usrNam")
if [ $? != 0 ]
then
echo "ERROR"
else
echo "OK"
fi
XXX archivos xyz dir \u003d YYY archivos X1 Y1 Z1 dir \u003d ZZZ Phil archivos x2 y2 z2 Cuando ejecute el script de shell que la siguiente salida: -- .//./ XXX / a .//./ XXX / b .//./ XXX / c .//./ XXX/YYY/x1 .//./ XXX/YYY/y1 .//./ XXX/YYY/z1 .//./ XXX / YYY / ZZZ / Phil ERR1 RET \u003d 0! \u003d 1 ERR3 RET \u003d 0! \u003d 1 ERR3 Aceptar Lo que no entiendo es por qué no tengo la "ERR2 ???". Me ERR1 porque AddFile devuelve 1, pero me esperaba obtener ERR2? "Porque la subshell sale con la salida 1. Me estoy perdiendo algo, obviamente, aquí y agradecería si alguien puede ayudar? Gracias Última edición por Philp; 01-07-2009 en 05:58 AM.. Motivo: Añadido Código etiquetas |
|
||||
|
Gracias por ayudar a gira
1) Lo siento, did'nt saber sobre el código de las etiquetas ... he añadido. 2) \u003d\u003d trabaja para mí? Tal vez mi versión de bash se excluyen los dos? 3) Brillante! Gracias "Tres no es necesario para ls, y es la causa de su problema, ya que todos los elementos de un gasoducto se ejecutan en subshells". Este fijo mi problema. Yo realmente no entiendo por qué todavía, pero voy a tener una lectura. Gracias! 4) me acordaré de utilizar $ PWD en el futuro. En mi código original no necesita conocer el directorio actual ... esto era necesario para reducir esta versión. Gracias de nuevo por toda su ayuda! |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|