Page 1 of 1

Unterschied script - Konsole (gelöst)

Posted: 03. Aug 2019 6:26
by 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: Select all

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

Posted: 03. Aug 2019 11:00
by 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

Posted: 03. Aug 2019 11:15
by 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

Posted: 03. Aug 2019 22:27
by Janka
In bash:

Code: Select all

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

Re: Unterschied script - Konsole

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