The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Sådan kontrolleres sti eksisterer eller ikke er i UNIX shell script suneelc UNIX for dummyer Spørgsmål & svar 3 01-22-2008 08:36 AM
Behov Script til at kontrollere filen eksisterer og sammenligne rbknisely UNIX for dummyer Spørgsmål & svar 1 01-16-2008 01:08 AM
hvordan man kan kontrollere, om mappe / fil findes ved hjælp af C / C + + steven88 Højtstående Programmering 2 01-03-2006 02:55 AM
hvordan man kan kontrollere, om mappe / fil findes ved hjælp af C / C + + steven88 Shell Programmering og Scripting 1 01-02-2006 10:45 PM
hvordan man kan kontrollere, om filen eksisterer eller ej? gusla UNIX for dummyer Spørgsmål & svar 3 03-27-2002 10:56 PM

 
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øg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 11-12-2006
heprox heprox is offline
Registreret Bruger
  
 

Join Date: Jul 2005
Stillinger: 32
Question Har en shell script kontrollere, om en fil til at eksistere inden behandling en anden fil

Jeg har en shell script, der kører hele tiden på udkig efter en bestemt type fil og så er det processer filen via en række andre scripts. Scriptet er at se en mappe, der har filer uploadet til den via SFTP. Det allerede kontrollerer størrelsen på filen for at sikre, at det ikke er stadigvæk sender før den starter behandlingen. Jeg vil gerne placere en anden kontrol i det script, der ser ud til, at der findes en anden fil, før behandlingen begynder. Det script ser således ud:


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

... Jeg vil gerne se efter en fil i / Gers / genret / tmp / poll_ ####. txt (hvor "####" er $ fileExtension variabel. Jeg tror filen check skal være i "Main Processing" sektionen, før den sender til filen til "is_file_arrived"-funktionen? I'f der er en "poll_ ####. txt" fil til stede Jeg vil bare gerne scriptet til at gå videre til den næste fil, og se på det igen senere. Dette ville forhindre to filer af samme type behandling på samme tid. Jeg tænker noget i retning af en "hvis-så"?
 

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 11:30 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0