Ich könnte (1) eine Datei mit typisierten Befehlen vorbereiten, die durch eine Endzeile getrennt sind, (2) sie ausführbar machen, (3) sie von einem Dateisystem-Manager oder dem Terminal ausführen.
Aber das ist lächerlich für nicht wiederholbare und immer wieder andere Befehlssätze.
Kann ich diese Befehle stattdessen in einer Anfrage an das Terminal senden?
Ich kenne kein Endzeilenzeichen für das Terminal - Strg, Umschalt oder Alt mit der Eingabetaste funktionieren nicht.
gnome-terminal
command-line
Esamo
quelle
quelle
Antworten:
Sie können Befehle mit
&&
oder trennen;
.&&
Führt den nächsten Befehl nur aus, wenn der vorherige mit dem Status 0 beendet wurde (erfolgreich war):;
Führt alle Befehle aus, auch wenn der vorherige mit einem Status ungleich Null beendet wird:Sie können diese Trennzeichen beliebig kombinieren.
quelle
command1 && command2
command2 wird nur ausgeführt, wenn command1 erfolgreich ist.sudo apt upgrade
und kombinierensudo systemctl reboot
, müssen Sie "sudo" zweimal hinzufügen, oder wird sich sudo für den zweiten Befehl "merken"?Wenn Sie daran interessiert sind, jeden Befehl in einer einzelnen Anforderung in einer eigenen Zeile einzugeben, können Sie die folgende Methode verwenden:
Beginnen Sie Ihre Anfrage (erste Zeile) mit
if :; then
(dies bedeutet: Wenn ja, dann tun Sie dies) und drücken Sie Enter; Ihre Eingabeaufforderung ändert sich jetzt in>
und es wird nichts ausgeführt.Geben Sie Ihre Befehle ein, gefolgt von Enter
Beenden Sie Ihre Anfrage mit
fi
(Ende der obigenif
Bedingung) und drücken Sie Enter. Jetzt werden alle Ihre Befehle in der angegebenen Reihenfolge ausgeführt.Beispiel:
quelle
if true; then
kann klarer zu lesen sein, wenn dies gewünscht wird.:
kann mit dem;
auf den ersten Blick verwechselt werden .Stellen Sie zuerst eine
{
eigene Zeile ein.Fügen Sie dann Ihre Befehle ein.
Setzen Sie dann ein
}
Zeichen in eine neue Zeile und drücken Sie Enter. Ihre Befehle werden ausgeführt.Beispiel:
was gedruckt wird (alles auf einmal, ohne Aufforderung dazwischen):
Als Randnotiz
{ .. }
ist die Bash-Befehl Gruppierungssyntax. Es ist oft in Verbindung mit&&
oder||
('und' und 'oder') nützlich.quelle
if :; then
bereits erwähnt wurde? Oder ist es etwas anders?if :
Führt einen Test für den Befehl null aus, der immer true zurückgibt.{ .. }
gruppiert einfach die Befehle zusammen. Ich persönlich finde es{ .. }
leichter, mich zu erinnern.