The UNIX and Linux Forums  
Hola y bienvenida de los Estados Unidos a la UNIX y Linux Foros! Gracias por su visita y formar parte de nuestra comunidad global.

Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



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
Con la declaración de error si .. Por favor ayuda JISHA Programación de scripts de shell y 1 01-16-2008 07:13 AM
bucle while read w / if anidados uno - no tratar individualmente cada entrada littlefrog Programación de scripts de shell y 7 12-11-2007 09:49 PM
en caso de declaración en un bucle while bobo UNIX for Dummies Preguntas y Respuestas 2 11-07-2006 12:38 PM
si en la declaración de bucle de una cadena Sniper Pixie UNIX for Dummies Preguntas y Respuestas 7 03-02-2006 07:28 AM
tar declaración de error legato UNIX for Dummies Preguntas y Respuestas 3 03-29-2005 10:58 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 09-19-2007
lumdev lumdev is offline
Usuario Registrado
  
 

Fecha: Sep 2006
Lugar: Bélgica
Publicaciones: 6
De bucle de datos - captura de error

Tengo una pregunta acerca de los bucles. (bash)

Tengo el siguiente por ejemplo:

para el archivo en `ls *. txt»
hacer
leer el archivo ...
hecho

Ahora, cuando hay un archivo de la actualidad no existe ningún problema, ahora cuando no hay archivo actual me sale el siguiente nivel de salida en mi buzón de correo electrónico: "No existe el fichero o directorio" de secuencias de comandos se ejecuta a través de crontab.

Ahora quiero por encima de la captura de error para no hacerlo en mi correo más, pero no tengo ni idea de cómo hacer esto.

Puedo hacer una declaración si en primer lugar "if [-f *. txt] ...", pero debe haber una solución mejor.

Thx.
  #2 (Enlace permanente)  
Old 09-19-2007
ajcannon ajcannon is offline
Usuario Registrado
  
 

Fecha: agosto 2007
Ubicación: Binfield, Berkshire. Reino Unido
Puestos: 91
si

Creo que el uso de los' if 'es una solución perfectamente razonable. Usted necesita una cierta clase si condicional para determinar si el archivo existe y un "si" sería Aceptar
  #3 (Enlace permanente)  
Old 09-19-2007
Portero porter is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: enero 2007
Puestos: 2.965
Cita:
Publicado originalmente por lumdev View Post
Puedo hacer una declaración si en primer lugar "if [-f *. txt] ...", pero debe haber una solución mejor.
Compruebe que el archivo real en el bucle

Código:
  for file in *.txt
  do
     if test -f $file
     then
        read file ...
     fi
  done
  #4 (Enlace permanente)  
Old 09-19-2007
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programador, autor
  
 

Fecha: marzo 2007
Ubicación: Toronto, Canadá
Puestos: 2.361
Cita:
Publicado originalmente por lumdev View Post
Tengo una pregunta acerca de los bucles. (bash)

Tengo el siguiente por ejemplo:

para el archivo en `ls *. txt»

Que no es la forma de bucle a través de los archivos. No sólo es LS innecesaria, que romperá su script si cualquier nombre de archivo contienen espacios u otros caracteres patológicos. Utilice el comodín directamente:

Código:
for file in *.txt
Cita:
hacer
leer el archivo ...
hecho

Ahora, cuando hay un archivo de la actualidad no existe ningún problema, ahora cuando no hay archivo actual me sale el siguiente nivel de salida en mi buzón de correo electrónico: "No existe el fichero o directorio" de secuencias de comandos se ejecuta a través de crontab.

Ahora quiero por encima de la captura de error para no hacerlo en mi correo más, pero no tengo ni idea de cómo hacer esto.

Puedo hacer una declaración si en primer lugar "if [-f *. txt] ...", pero debe haber una solución mejor.

No, no puede hacer eso, que no se si hay más de un archivo. Txt.

Puede utilizar una función:

Código:
is_file() {
   test -f "$1"
}

is_file *.txt &&
 for file in *.txt
 do
   ...
 done
La forma más segura es comprobar cada archivo:

Código:
for file in *.txt
do
  [ -f "$file" ] || continue
  ...
done
  #5 (Enlace permanente)  
Old 09-20-2007
lumdev lumdev is offline
Usuario Registrado
  
 

Fecha: Sep 2006
Lugar: Bélgica
Publicaciones: 6
Thx por las respuestas.

He utilizado la solución con la función, ahora no tengo ningún "No existe el fichero o directorio" salida más.

Thx por la ayuda cfajohnson.
Closed Thread

Marcadores

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 08:02 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0