exit steigt auch aus shell aus
-
- Beiträge: 1979
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
exit steigt auch aus shell aus
Ich hab am Anfang eines Skriptes folgendes:
ping -c 3 notebook
if [ $? != 0 ]
then
echo "Rechner ist nicht verfügbar"
exit 0
fi;
Leider steigt mir die if-Abfrage nicht nur aus dem Skript aus, sondern auch aus der ganzen Shell (die in dem Fall als root geöffnet habe)
Ausprobiert hab ich bisher exit 0 und exit 1
ping -c 3 notebook
if [ $? != 0 ]
then
echo "Rechner ist nicht verfügbar"
exit 0
fi;
Leider steigt mir die if-Abfrage nicht nur aus dem Skript aus, sondern auch aus der ganzen Shell (die in dem Fall als root geöffnet habe)
Ausprobiert hab ich bisher exit 0 und exit 1
Es gibt viele Foren und eine Welt ausserhalb
Re: exit steigt auch aus shell aus
Irgendwo 'set -e' gesetzt, eventuell implizit?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: exit steigt auch aus shell aus
hi,
wie rufst du das Script denn auf?
für script1 wird eine neue shell gestartet und nur die wird beim exit beendet. script2 wird von deiner shell selbst ausgeführt, das exit wirkt also so, als ob du es auf der Kommandozeile eingetippt hättest.
wie rufst du das Script denn auf?
Code: Alles auswählen
./script1
. script2
Beware of programmers who carry screwdrivers.
-
- Beiträge: 1979
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: exit steigt auch aus shell aus
rendegast hat geschrieben:Irgendwo 'set -e' gesetzt, eventuell implizit?
kann man das zurückstellen? Das würde ich dann "profülaktisch" machen.
Das Skript bei mir ist ein einziges, es wird also alles auf der Kommandozeile gestartet, ich lande dann nicht mehr auf der Kommandozeile sondern die geht gleich ganz zu.
Es gibt viele Foren und eine Welt ausserhalb
Re: exit steigt auch aus shell aus
Rufst du das Script möglicherweise mit 'source' auf? Dann wäre es normales Verhalten (würde auch die fehlende She-Bang-Zeile erklären).
cu,
niemand
cu,
niemand
-
- Beiträge: 1979
- Registriert: 16.08.2005 18:15:29
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: münchen
Re: exit steigt auch aus shell aus
Mit dem Punkt:
. rsync_daten_notebook
Es wird ein anderes Skript aufgerufen, aber erst nach der if-Abfrage mit exit
. rsync_daten_notebook
Es wird ein anderes Skript aufgerufen, aber erst nach der if-Abfrage mit exit
Es gibt viele Foren und eine Welt ausserhalb
Re: exit steigt auch aus shell aus
Siehe cosmacs Beitrag. In der Form sourcest du das Script, das Verhalten ist demnach normal. Möglicherweise möchtest du es mit ./rsync_daten_notebook aufrufen? Dann verhält es sich, wie man es von einem Script erwartet
cu,
niemand
cu,
niemand
Re: exit steigt auch aus shell aus
Ja, dann mach's richtig mit-- dann hast du diesen Effekt nicht (und noch ein paar andere nicht, z.B. dass eigentlich temporaere Variablen vom Skript nach dessen Ende noch in der umgebenden Shell herumschwirren, traps nicht wie geplant ausloesen, etc.).
Gruss Cae
Code: Alles auswählen
$ ./foo
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier