#!/bin/sh while /bin/true do if deinprogram then break fi done; Wenn du "deinprogramm" ;-) selber in C machst: wenn du im main() return -1; machst, wird es im shell im "if" wie ein "false" interpretiert... ein return 0; ist wie ein "true" ;-) z.B.: um zu testen, ob ein User existiert.... neee... hier ein nützliches Beispiel: Um in der /etc/aliases-Datei die Accounts zu testen (ob sie auch wirklich existieren): #!/bin/sh # selbstgemacht, in 5 Minuten (scheint zu funktionieren ;-)), nicht abgeguckt IN=/etc/aliases cat $IN | cut -f 1 -d '#' | tr '\t' ' ' | tr -s ' ' | while read einAlias dieAccounts do dieAccounts=`echo $dieAccounts | tr ',' ' '` for einAccount in $dieAccounts do if id -un $einAccount &> /dev/null then echo -n '.' else echo -e "\nAlias \"$einAlias\": der Account \"$einAccount\" existiert nicht" fi done; done; Nur so, ein kleines Beispiel... ;-) Das Buch "The UNIX Programming Environment" (Kernighan und Pike) ist persönlich meine kleine Bibel ;-) -> ein bisschen UNIX, C, shell und yacc... So ziemlich alles was man braucht, um glücklich zu sein... (und Enlightenment) ;-) Pascal /nick SuSE52 on #linux (IRCnet) root on www.student.prov-liege.be -----Original Message----- From: Knut Grahlmann <Grahlmaenner@t-online.de> To: suse-linux@suse.com <suse-linux@suse.com> Date: mercredi 27 mai 1998 19:42 Subject: Shell-Scripts Hallo Pinguine! Irgendwie merke ich zur Zeit, daß Shell-Script was ziemloch geniales sind. Nur leider kann ich keine HowTos oder sonstige Anleitungen finden. (wahrscheinlich such ich nicht richtig :-) ) Weiß einer von Euch, wo ich so etwas finden kann? (Eigentlich brauche ich erstmal nur eine repeat until-Schleife mit exit-Code-Abfrage.) Schon jetzt vielen Dank Knut ------------------------------------------- Knut Grahlmann <Knut.Grahlmann@bigfoot.com> Intelligent systems are penguin systems. Like mine... :-) -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Moin! Pascal Bleser wrote:
#!/bin/sh while /bin/true do if deinprogram then break fi done;
Danke. Diese führt aber (so scheint es nach ersten Versuchen) das Programm so lange aus, wie der ExitCode true ist. Ich meinte aber: repeat /usr/bin/fetchmail until ExitCode=0
Wenn du "deinprogramm" ;-) selber in C machst: wenn du im main() return -1; machst, wird es im shell im "if" wie ein "false" interpretiert... ein return 0; ist wie ein "true" ;-) Schön, wenn ich C überhaupt könnte. ;-(((((((((
[Beispiele für o.g. Script] Nochmals danke.
Das Buch "The UNIX Programming Environment" (Kernighan und Pike) ist persönlich meine kleine Bibel ;-) -> ein bisschen UNIX, C, shell und yacc... So ziemlich alles was man braucht, um glücklich zu sein... (und Enlightenment) ;-) Gibst's das vielleicht auch auf deutsch (Muß aber nicht unbedingt sein.) ?
Au revoir, monsieur Knut, le person qui aime Linux, mais n'avais pas beaucoup de savoir. :-) ------------------------------------------- Knut Grahlmann <Knut.Grahlmann@bigfoot.com> Intelligent systems are penguin systems. Like mine... :-) -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
Hi! Trying to kill the keyboard, Grahlmaenner@t-online.de produced:
Ich meinte aber:
repeat /usr/bin/fetchmail until ExitCode=0
Hmmm ... #! /bin/sh ExitCode=1 until [ $ExitCode -eq 0 ] do /usr/bin/fetchmail ExitCode=$? done [ ist ein link auf test, die Spaces um '[' und ']' sind also unbedingt notwendig. Zufrieden? -Wolfgang -- PGP 2 welcome: Mail me, subject "send PGP-key". If you've nothing at all to hide, you must be boring. Unsolicited Bulk E-Mails: *You* pay for ads you never wanted. Is our economy _so_ weak we have to tolerate SPAMMERS? I guess not. -- Um aus der Liste ausgetragen zu werden, eine Mail an majordomo@suse.com schicken, mit dem Text: unsubscribe suse-linux
participants (3)
-
Grahlmaenner@t-online.de
-
pbleser@prov-liege.be
-
weissel@jupiter.ph-cip.uni-koeln.de