PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bash Variablenzuweisung



meinereinerseiner
24-03-2011, 13:45
Hi,

kann mir jemand verraten warum:
ping -c 1 -w 5 IP_ADRESSE >/dev/null 2>&1 && ( echo OK && PING=OK )||( echo NOK && PING=NOK ) && echo $PINGnichts in $PING schreibt, egal ob die Adresse erreichbar ist, oder nicht.

thx,
tom

John W
24-03-2011, 23:40
Weil PING eine neue Variable ist, weil in einem anderem Kontext. So geht es:

ping -c 1 -w 5 127.0.0.1 >/dev/null 2>&1 && { echo OK && PING=OK ; } || { echo NOK && PING=NOK ; } && echo $PING

Der Unterschied ist, dass { echo a ; echo b ; } einen Codeblock aufmacht, während ( echo a;echo b) eine neue Shell startet.

meinereinerseiner
26-03-2011, 10:10
klappt bestens und vielen Dank für die super Erklärung dazu!!

tom