![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui. |
Più di UNIX e Linux Forum Argomenti potreste trovare utili
|
||||
| Filo | Thread Starter | Forum | Risposte | Ultimo Post |
| Come controllare percorso non esiste o script di shell UNIX | suneelc | UNIX for Dummies Domande & Risposte | 3 | 01-22-2008 08:36 AM |
| Necessità di script per controllare il file esiste e confrontare | rbknisely | UNIX for Dummies Domande & Risposte | 1 | 01-16-2008 01:08 AM |
| come verificare se directory / file esistenti utilizzando c / c + + | steven88 | Di programmazione ad alto livello | 2 | 01-03-2006 02:55 AM |
| come verificare se directory / file esistenti utilizzando c / c + + | steven88 | Shell scripting e di programmazione | 1 | 01-02-2006 10:45 PM |
| come verificare se il file esiste o no? | gusla | UNIX for Dummies Domande & Risposte | 3 | 03-27-2002 10:56 PM |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
Ho uno script di shell che gira tutto il tempo alla ricerca di un certo tipo di file e quindi i processi che il file attraverso una serie di altri script. Lo script è la visione di un elenco che ha caricato i file ad esso tramite SFTP. E 'già controlla la dimensione del file per assicurarsi che non è ancora prima di iniziare il caricamento di trasformazione. Vorrei effettuare il check-in un altro posto lo script che si occupa per l'esistenza di un altro file inizia prima della trasformazione. Lo script si presenta come: Codice:
#!/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
... Vorrei verificare la presenza di un file in / passeggeri / genret / tmp / poll_ ####. txt (dove "####" è la variabile $ fileExtension. Credo che il file di verifica deve essere in "principali" sezione prima che invia il file alla "is_file_arrived" la funzione? I'f vi è un "poll_ ####. txt" file presenti vorrei solo lo script per spostarsi sul file successivo e guardare ancora più tardi. Ciò eviterebbe due file dello stesso tipo di trattamento allo stesso tempo. Sto pensando qualcosa come un "se-allora"? |
|
||||
|
Hai perso me ....
Perdonate la mia ignoranza, così come il bracketing "a un" lavoro? Codice:
[[ -a /gers/genret/tmp/poll_$fileExtension.txt ]] && continue ... per verificare che il file "poll_" e, se ritenuto fermarsi e passare sopra il file successivo? Sono confuso come funziona? |
|
|||||
|
Il codice seguente è equivalente: Codice:
if [[ -a /gers/genret/tmp/poll_$fileExtension.txt ]] then continue fi Se il file esiste pooll_, poi riprendere la prossima iterazione del ciclo for (procedere file successivo). Jean-Pierre. |
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|