The UNIX and Linux Forums  


Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Så kontrollerar du sökvägen finns eller inte i UNIX shell script suneelc UNIX for Dummies Frågor & Svar 3 01-22-2008 08:36
Behöver Script för att kontrollera filen finns och jämför rbknisely UNIX for Dummies Frågor & Svar 1 01-16-2008 01:08
hur man kan kontrollera om katalogen / filen finns med hjälp av c / c + + steven88 High Level Programming 2 01-03-2006 02:55
hur man kan kontrollera om katalogen / filen finns med hjälp av c / c + + steven88 Shell-programmering och Skript 1 01-02-2006 10:45
hur man kan kontrollera om filen finns eller inte? gusla UNIX for Dummies Frågor & Svar 3 03-27-2002 10:56

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 11-12-2006
heprox heprox is offline
Registered User
  
 

Join Date: Jul 2005
Inlägg: 32
Question Har ett shell script kontrollera om en fil att existera före bearbetningen en annan fil

Jag har ett shell script som körs hela tiden letar efter en viss typ av fil och sedan den bearbetar filen via en rad andra skript. Skriptet betraktar en katalog som innehåller filer som laddas upp till den via SFTP. Det kontrollerar redan storleken på filen för att kontrollera att det inte fortfarande är uppladdning innan den börjar bearbetningen. Jag skulle vilja göra en ny kontroll i skriptet som ser till att det finns en annan fil innan bearbetningen börjar. Det se ut:


Kod:
#!/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

... Jag vill söka efter en fil i / Gers / genret / tmp / poll_ ####. txt (där "####" är $ fileExtension variabeln. Jag tror att filen kontroll bör göras i "Main processing" avsnitt innan de skickar till den filen till "is_file_arrived"-funktion? I'f finns en "poll_ ####. txt" fil närvarande vill jag bara skriptet att gå vidare till nästa fil och titta på det igen senare. Detta skulle förhindra att två filer av samma typ behandling på samma gång. Jag tänker något i stil med en "om-då"?
 

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 07:01.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0