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
Cómo comprobar la ruta de acceso o no existen en el script de shell de UNIX suneelc UNIX for Dummies Preguntas y Respuestas 3 01-22-2008 08:36 AM
Necesidad de secuencias de comandos para comprobar y comparar el archivo existe rbknisely UNIX for Dummies Preguntas y Respuestas 1 01-16-2008 01:08 AM
cómo comprobar si el directorio / archivo existe usando C / C + + steven88 Programación de Alto Nivel 2 01-03-2006 02:55 AM
cómo comprobar si el directorio / archivo existe usando C / C + + steven88 Programación de scripts de shell y 1 01-02-2006 10:45 PM
cómo comprobar si el archivo existe o no? gusla UNIX for Dummies Preguntas y Respuestas 3 03-27-2002 10:56 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 11-12-2006
heprox heprox is offline
Usuario Registrado
  
 

Fecha: julio 2005
Puestos: 32
Question Tiene un script de shell para comprobar un archivo de existir antes de la transformación de otro archivo

Tengo un script de shell que se ejecuta todo el tiempo buscando un determinado tipo de archivo y, a continuación, se procesa el archivo a través de una serie de otros scripts. El guión está viendo un directorio de los archivos que ha subido a la misma a través de SFTP. Ya controles el tamaño del archivo para asegurarse de que no es aún antes de que comience la carga de procesamiento. Quisiera hacer otro control en la secuencia de comandos que busca la existencia de otro archivo antes de su transformación comienza. El script tiene el siguiente aspecto:

Código:
#!/bin/ksh
PATH=/gers/nurev/menu/pub/sbin:/gers/nurev/menu/pub/bin:/gers/nurev/menu/pub/mac
:/gers/nurev/menu/adm/sbin:/gers/nurev/menu/adm/bin:/gers/nurev/menu/adm/mac:/ge
rs/nurev/custom:/gers/nurev/fix:/gers/nurev/src_rev/fix:/gers/nurev/opt/path:/ge
rs/nurev/bin:/g/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/sbin:.
ORACLE_HOME=/gers/nurev
ORACLE_SID=nurev
export PATH
export ORACLE_HOME
export ORACLE_SID
 
#
# Function : is_file_arrived file
# Arg(s)   : file = file to verify
# Output   : None
# Status   : 0 = yes file arrived, 1 = no
# Env.     : IFA_WAIT : interval (secs) for file size check (def=5)
#
 
is_file_arrived() {
   [ -z "$1" ] && return 1
   local file=$1
   local arrived=1
   local size1 size2
   if [ -f "$file" -a -z "$(fuser $file 2> /dev/null)" ] ; then
      size1=$(ls -l $file 2>/dev/null | awk '{print $5}')
      sleep ${IFA_WAIT:-15}
      size2=$(ls -l $file 2>/dev/null | awk '{print $5}')
      [ ${size1:-1} -eq ${size2:-2} ] && arrived=0
   fi
   return $arrived
}
 
 
processFile ()
{
   local fileName=$1
   local fileExtension=$2
   local fileNewName="/gers/nurev/datafiles/str${fileExtension}.asc"
   local filePrintPath="/gers/nurev/print"
   local fileTmpPath="/gers/nurev/tmp"
   local fileODIName="str${fileExtension}.pos"
   mv -Eignore $fileName $fileNewName     
   prepup $fileNewName $fileExtension
   mv -Eignore  $filePrintPath/$fileODIName $fileTmpPath/$fileODIName
   save2tmp $fileExtension
   call_siu $fileExtension
}
 
# Main Processing
 
nsec=1
while [[ "$(date +%H%M)" -lt 2329 ]]
do
   for fileName in /gers/nurev/datafiles/[Uu][Pp][Ll][Oo][Aa][Dd].[0-9][0-9][0-9
][0-9]
   do
      fileExtension=${fileName#*.}
      is_file_arrived "$fileName" && nsec=1 && processFile $fileName $fileExtension
   done
   sleep $nsec
   case $nsec in
      1)   nsec=15;;
      15)  nsec=45;;
      45)  nsec=90;;
      90)  nsec=300;;
      300) nsec=600;;
      600) nsec=900;;
      *)   nsec=1800;;
   esac
done
... Que me gustaría buscar un archivo en / pasajeros / genret / tmp / poll_ ####. txt (donde "####" es la variable $ fileExtension. Creo que el archivo de verificación debe estar en la "Procesamiento principal" sección antes de enviar el archivo a la "is_file_arrived" función? I'f hay una "poll_ ####. txt" archivo actual solo quiero la secuencia de comandos para pasar al siguiente archivo y mire de nuevo más tarde. Esto evitaría dos archivos del mismo tipo de procesamiento al mismo tiempo. Estoy pensando algo así como un "si-entonces"?
  #2 (Enlace permanente)  
Old 11-13-2006
aigles's Avatar
Aigles aigles is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: abril 2004
Ubicación: Burdeos, Francia
Mensajes: 1.418
Usted puede hacer algo como esto:
Código:
   for fileName in /gers/nurev/datafiles/[Uu][Pp][Ll][Oo][Aa][Dd].[0-9][0-9][0-9
][0-9]
   do
      fileExtension=${fileName#*.}
      [[ -a /gers/genret/tmp/poll_$fileExtension.txt  ]] && continue
      is_file_arrived "$fileName" && nsec=1 &&       processFile $fileName $fileExtension
   done
Jean-Pierre.
  #3 (Enlace permanente)  
Old 11-13-2006
heprox heprox is offline
Usuario Registrado
  
 

Fecha: julio 2005
Puestos: 32
Has perdido mi ....

Perdone mi ignorancia, ¿cómo sería el bracketing "-un" trabajo?

Código:
[[ -a /gers/genret/tmp/poll_$fileExtension.txt  ]] && continue
... que buscar el archivo "poll_" y si se encuentra allí y dejar pasar al siguiente archivo? Estoy confundida cómo funciona esto?
  #4 (Enlace permanente)  
Old 11-14-2006
aigles's Avatar
Aigles aigles is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: abril 2004
Ubicación: Burdeos, Francia
Mensajes: 1.418
El código siguiente es equivalente:
Código:
if [[ -a /gers/genret/tmp/poll_$fileExtension.txt  ]]
then
   continue
fi
Si el archivo pooll_ existe, y luego reanudar la siguiente iteración del bucle for (continuar el siguiente archivo).


Jean-Pierre.
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 05:24 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