Ich lade die Datei mit wget herunter und möchte meinen Computer ausschalten, nachdem der Download abgeschlossen ist, aber ich muss jetzt irgendwohin gehen :) Ist es möglich, den Befehl in bash genau auszuführen, wenn der Vorgang abgeschlossen ist?
Ich weiß, dass das funktioniert:
wget http://example.com/file.rar; jetzt herunterfahren
Aber was ist, wenn ich nur tippe:
wget http://example.com/file.rar
Antworten:
Sie können so etwas tun:
wait wartet auf alle im Hintergrund ausgeführten Programme der aktuellen Shell - also dieses wget.
Nachdem das Warten beendet ist, wird der Computer heruntergefahren.
quelle
In einer anderen Shell verwenden
um die PID des Befehls zu finden, auf den Sie warten möchten
Damit wird das Herunterfahren erst ausgeführt, wenn der Prozess beendet ist. Siehe auch die Antwort von depesz .
quelle
wait
nur für Befehle, die von derselben ShellMeine Lösung lautet wie folgt: Unterbrechen Sie Ihre lang laufende Aufgabe mit Strg + Z und geben Sie dann Folgendes ein:
Wenn Sie ausführen möchten, um je nach Erfolg oder Misserfolg Ihres Befehls anders zu reagieren, verwenden Sie && und || als Kurzschlussbetreiber.
BEARBEITEN: Dies funktioniert nicht mit sudo, da Sie nach Ihrem Passwort gefragt werden. Dementsprechend habe ich die Beispiele mit sudo entfernt. Wenn Sie sudo für die zweite Aufgabe benötigen, wenden Sie eine andere der hier angegebenen Methoden an.
Andererseits glaube ich, dass sowohl GNOME als auch KDE Möglichkeiten bieten, ein Herunterfahren / einen Neustart ohne Verwendung von sudo auszulösen, indem ein entsprechendes D-Bus-Signal oder etwas gesendet wird.
quelle
fg
...,sudo
könnte aber ein Problem sein, wenn Sie zur Eingabe eines PasswortsJa, geben Sie einfach Ihren zweiten Befehl ein und drücken Sie die Eingabetaste. Wenn in Ihrem aktuellen Programm Text gescrollt wird, können Sie nicht sehen, was Sie richtig eingeben. Achten Sie also auf Ihre Tasten, damit Sie es richtig machen.
Eine intelligentere Möglichkeit besteht darin, zu einem anderen TTY zu wechseln (STRG + ALT + F1 bis F6) und den Befehl gleichzeitig auszuführen. Wenn Sie ein Befehlszeilenprogramm wie screen verwenden, können Sie darin ein neues Fenster erstellen.
quelle
Wenn Sie Lust bekommen möchten, überprüfen Sie den Rückgabestatus des wget und fahren Sie es nur herunter, wenn es erfolgreich war.
quelle
wget
Erstellen von Skripten. Während der Ausführung werden Sie jedoch nicht aufgefordert, den Test zu erstellen.