Seite 1 von 1

Unterschied script - Konsole (gelöst)

Verfasst: 03. Aug 2019 6:26
von Reader
Hallo,

bin neu im Forum und nicht sicher, ob ich hier mit meinem Problemchen richtig bin, weil es in diesem Bereich noch keine Beiträge gibt.
Na ja, ich versuch's mal.
Warum funktioniert

Code: Alles auswählen

if ping -c 1 www.heise.de &> /dev/null; then echo connected; else echo not_connected; fi
auf der Konsole und in einem bash-script nicht? Wenn ich die Ausgabe so im script umleite:
ping -c 1 www.heise.de > /dev/null 2>&1
funktioniert's auch im script.

Re: Unterschied script - Konsole

Verfasst: 03. Aug 2019 11:00
von hjb
Hi,

willkommen! Der Code funktioniert bei mir auch im Skript, die Frage ist, was genau funktioniert bei dir nicht und wie ist dein Skript aufgebaut? Hast du "#!/bin/bash" in der ersten Zeile stehen und das Skript ausführbar gemacht?

Grüße,
hjb

Re: Unterschied script - Konsole

Verfasst: 03. Aug 2019 11:15
von Reader
Hab den Fehler gefunden: hatte zwar #!/bin/bash im script stehen, dann das script aber mit sh test.sh gestartet, sodass er dann doch nicht die bash genommen hat. Danke trotzdem, das ist mir erst nach deiner Antwort aufgefallen.
Aber gleich noch eine andere Frage: wie kann ich den Rückgabewert von, z.B. ping, direkt einer Variablen zuweisen?

Re: Unterschied script - Konsole

Verfasst: 03. Aug 2019 22:27
von Janka
In bash:

Code: Alles auswählen

VARIABLE=$?
$? gibt den Rückgabewert des letzten Kommandos zurück.

Re: Unterschied script - Konsole

Verfasst: 04. Aug 2019 7:49
von Reader
Ja, aber ich wollte, ähnlich wie bei "test" den Befehl direkt auswerten. Na gut, dann mache ich das über $?.
Vielen Dank