• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

&& & || :D

A

Anonymous

Gast
wenn ich mit einem bestimmten syntax etwas starte, und direkt danach den sxit-status auslese, und aufgrund dessen etwas anderes ausführe, ist dann || oder && gültig für den URSPRÜNGLICHEN befehl, oder das VORHERGEHENDE?? Beispiel:
Code:
checkproc $DIR/hlds_run && echo "CS-Server RUNNING" || echo "CS-Server NOT RUNNING"
--> ich vermute nämlich dass in diesem Ausschnitt eines Scripts für CS ein Fehler vorliegt, und zwar denke ich, dass || den exit-status von dem echo vorher nimmt, liege ich da richtig?
 
die Zeile sagt:

mach checkproc $DIR/hlds_ru, wenn das wahr ist, dann mach echo "CS-Server RUNNING" sonst mach echo "CS-Server NOT RUNNING"

Reales Beispiel:
Code:
$ [ -n "" ] && echo "true" || echo "false"
false
$ [ -z "" ] && echo "true" || echo "false"
true
 
rm -rf / schrieb:
wenn ich mit einem bestimmten syntax etwas starte, und direkt danach den sxit-status auslese, und aufgrund dessen etwas anderes ausführe, ist dann || oder && gültig für den URSPRÜNGLICHEN befehl, oder das VORHERGEHENDE??
Du könntest ja theoretisch mehr als zwei Befehle mit && verknüpfen. Schlägt IRGENDEINER dieser &&-Verknüpften fehl, wird in den ||-Zweig gesprungen. Beispiel:
Code:
~> echo 1 && echo 2 && ls gibtesnicht && echo 3 || echo fehler
1
2
ls: gibtesnicht: Datei oder Verzeichnis nicht gefunden
fehler
 
Ergänzung zum Thema: Generell ist es möglich, auch kompliziertere Verschachtelungen mit && bzw. || auszudrücken. Es ist wirklich nur noch die Frage relevant, ob dieser Spaghetti-Code dann auch noch lesbar ist. Beispiel:

Code:
file=/etc/hosts

# Moeglichkeit 1:
if test -f $file
then
  if grep -iq aol $file
  then
    echo kuendigen!
  else
    echo brav!
  fi
else
  echo keine hosts
fi

# Moeglichkeit 2:
test -f $file && ( grep -iq aol $file && echo kuendigen! || echo brav! ) || echo keine hosts
 
TeXpert schrieb:
<scnr>ich wundere mich, dass hier ein perl-coder cryptische 1-Zeiler ablehnt ;) </scnr>
Das tolle ist doch: Mit perl kann jeder glücklich werden. Hacker, die die Bytes des Codes zählen und zu verringern suchen und Programmierer, die immer schön ausschreiben, damit andere (oder man selbst) das Teil noch lesen können. TIMTOWTDI
:D

Wenn du gerne in ganzen Sätzen Programmierst, kannst du ja das Modul Lingua::Romana::perligata nehmen. Siehe

http://search.cpan.org/~dconway/Lingua-Romana-Perligata-0.50/lib/Lingua/Romana/Perligata.pm
 
Wenn du gerne in ganzen Sätzen Programmierst, kannst du ja das Modul Lingua::Romana::perligata nehmen. Siehe

http://search.cpan.org/~dconway/Lingua-Romana-Perligata-0.50/lib/Lingua/Romana/Perligata.pm

oh gott, lieber nicht... dann beschäftige ich mich doch eher mit literate programming und CWEB ;)
 
Oben