![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Hoe om te controleren pad bestaat of niet in Unix shell script | suneelc | UNIX voor Dummies Questions & Answers | 3 | 01-22-2008 08:36 |
| Script nodig om te controleren bestand bestaan en vergelijken | rbknisely | UNIX voor Dummies Questions & Answers | 1 | 01-16-2008 01:08 |
| hoe om te controleren of map / bestand bestaat met c / c + + | steven88 | Hoog Niveau Programmering | 2 | 01-03-2006 02:55 |
| hoe om te controleren of map / bestand bestaat met c / c + + | steven88 | Programmeren en Shell Scripting | 1 | 01-02-2006 10:45 PM |
| hoe om te controleren of het bestand bestaat of niet? | gusla | UNIX voor Dummies Questions & Answers | 3 | 03-27-2002 10:56 PM |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Ik heb een shell script dat de hele tijd op zoek naar een bepaald type bestand wordt uitgevoerd en vervolgens verwerkt het bestand door een reeks van andere scripts. Het script is het kijken naar een map die bestanden heeft geüpload naar het via SFTP. Het programma controleert nu al de grootte van het bestand om ervoor te zorgen dat deze nog steeds aan het uploaden is voordat hij begint de verwerking. Ik wil de plaats nog een vinkje in het script dat wordt gezocht naar het bestaan van een ander bestand voordat de verwerking wordt begonnen. Het script ziet er als volgt uit: 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
... Ik wil graag om te controleren of een bestand in / gers / genret / tmp / poll_ ####. txt (waar "####" is de $ fileExtension variabele. Ik denk dat controleren of het bestand moet worden in de "Belangrijkste Processing" sectie voor deze stuurt het bestand naar de "is_file_arrived" functie? I'f is er een "poll_ ####. txt" bestand aanwezig wil ik het script door te gaan naar het volgende bestand en kijken het later opnieuw. Dit zou twee bestanden van hetzelfde type verwerking voorkomen op hetzelfde moment. Ik denk zoiets als een 'als-dan "? |
|
||||
|
Je hebt verloren me ....
Vergeef mijn onwetendheid, dus hoe zou bracketing de "-een" werk? Code:
[[ -a /gers/genret/tmp/poll_$fileExtension.txt ]] && continue ... het zou controleren op het bestand "poll_" en als hij vond het daar te stoppen en gaan naar de volgende file? Ik weet niet precies hoe dit werkt? |
|
|||||
|
De volgende code is gelijk aan: Code:
if [[ -a /gers/genret/tmp/poll_$fileExtension.txt ]] then continue fi Als het bestand pooll_ bestaat, dan weer de volgende iteratie van de lus (ga volgend bestand). Jean-Pierre. |
![]() |
| Bladwijzers |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|