The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



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
Fout met als verklaring .. Please help jisha Programmeren en Shell Scripting 1 01-16-2008 07:13
terwijl lees lus w / een geneste if statement - niet behandelen elk item afzonderlijk littlefrog Programmeren en Shell Scripting 7 12-11-2007 09:49 PM
if statement in een while lus Bobo UNIX voor Dummies Questions & Answers 2 11-07-2006 12:38
Als verklaring voor de lus van een string Sniper Pixie UNIX voor Dummies Questions & Answers 7 03-02-2006 07:28
tar fout verklaring legato UNIX voor Dummies Questions & Answers 3 03-29-2005 10:58 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 Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 09-19-2007
lumdev lumdev is offline
Geregistreerde gebruiker
  
 

Join Date: Sep 2006
Locatie: België
Posten: 6
Lus verklaring - vangst fout

Ik heb een vraag over de lussen. (bash)

Ik heb de volgende bijvoorbeeld:

voor bestand in `ls *. txt"
doen
lees bestand ...
gedaan

Nu als er een bestand aanwezig is er geen probleem, nu als er geen bestand aanwezig zijn, krijg ik de volgende output in mijn standaard mail box: "No such file or directory" Script wordt uitgevoerd via crontab.

Nu wil ik voor de vangst van de bovenstaande fout zo krijg ik niet in mijn mail niet meer, maar ik heb geen idee hoe dit te doen.

Ik kan een verklaring als eerste "if [-f *. txt] ...", maar er moet een betere oplossing.

Thx.
  #2 (permalink)  
Old 09-19-2007
ajcannon ajcannon is offline
Geregistreerde gebruiker
  
 

Join Date: Aug 2007
Locatie: Binfield, Berkshire. UK
Posts: 91
als

Ik denk dat het gebruik van de 'als' statement is een perfect redelijke oplossing. U moet als een soort voorwaardelijke verklaring om te bepalen of je het bestand bestaat en een 'als' zou OK
  #3 (permalink)  
Old 09-19-2007
portier porter is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: Jan 2007
Berichten: 2965
Citaat:
Oorspronkelijk geplaatst door lumdev View Post
Ik kan een verklaring als eerste "if [-f *. txt] ...", maar er moet een betere oplossing.
Check voor het actuele bestand in de lus


Code:
  for file in *.txt
  do
     if test -f $file
     then
        read file ...
     fi
  done

  #4 (permalink)  
Old 09-19-2007
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmeur, auteur
  
 

Join Datum: maart 2007
Plaats: Toronto, Canada
Berichten: 2380
Citaat:
Oorspronkelijk geplaatst door lumdev View Post
Ik heb een vraag over de lussen. (bash)

Ik heb de volgende bijvoorbeeld:

voor bestand in `ls *. txt"

Dat is niet de manier om doorlusfunctie bestanden. Niet alleen is ls overbodig, het zal breken je script eventuele bestandsnamen bevatten spaties of andere pathologische tekens. Gebruik het jokerteken direct:


Code:
for file in *.txt

Citaat:
doen
lees bestand ...
gedaan

Nu als er een bestand aanwezig is er geen probleem, nu als er geen bestand aanwezig zijn, krijg ik de volgende output in mijn standaard mail box: "No such file or directory" Script wordt uitgevoerd via crontab.

Nu wil ik voor de vangst van de bovenstaande fout zo krijg ik niet in mijn mail niet meer, maar ik heb geen idee hoe dit te doen.

Ik kan een verklaring als eerste "if [-f *. txt] ...", maar er moet een betere oplossing.

Nee, je kan dat niet, het zal mislukken als er meer dan een. Txt-bestand.

U kunt gebruik maken van een functie:


Code:
is_file() {
   test -f "$1"
}

is_file *.txt &&
 for file in *.txt
 do
   ...
 done

De veiligste manier is om te controleren elk bestand:


Code:
for file in *.txt
do
  [ -f "$file" ] || continue
  ...
done

  #5 (permalink)  
Old 09-20-2007
lumdev lumdev is offline
Geregistreerde gebruiker
  
 

Join Date: Sep 2006
Locatie: België
Posten: 6
Thx voor de antwoorden.

Ik heb de oplossing met de functie, nu krijg ik niet elke "No such file or directory" output meer.

Thx voor de hulp cfajohnson.
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 01:19.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0