Hi,
das macht einen großen Unterschied!
Wenn Du den Return Code eines Befehls überprüfen willst, musst Du das direkt nach diesem Befehl machen, oder Dir eben den Wert in einer anderen Variablen zwischenspeichern (immer noch direkt nach dem Befehl).
GwenDragons Variante prüft dadurch den Return Code des lsof/grep-Konstruktes, während deine Variante den Return Code des echo überprüft.
Hier mal ein lauffähiges Beispiel, um den Unterschied nochmal darzustellen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
echo "first try"
# command with return code != 0 (so, failed)
false
echo "rc: $?"
# beware! now $? is set by echo
if [ $? -ne 0 ] ; then
echo "command failed."
else
echo "command successfully executed."
fi
####
echo "next try"
false
RC=$?
echo "rc: $RC"
if [ $RC -ne 0 ] ; then
echo "command failed."
else
echo "command successfully executed."
fi
Last edited: 2011-07-05 22:25:56 +0200 (CEST)
meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!