
Beispiel: Nach add-apt-repository
Beendigung des Prozesses sofort ausführen apt-get update
- ohne den Befehl manuell eingeben zu müssen.
Gibt es eine Möglichkeit, dies zu tun? Ist es möglich, eine solche Kombination festzulegen, ohne das sudo
Passwort zu verwenden? (obwohl mir beides egal ist)
Ich frage folgendes:Wie kann ich zwei Befehle miteinander verknüpfen, so dass jedes Mal, wenn ich einen bestimmten Befehl ausführe, dieserstetsführt den verknüpften Befehl danach aus?
Antwort1
Wie immer
sudo bash -c "command1; command2"
Wenn Sie command2 erst ausführen möchten, nachdem command1 erfolgreich abgeschlossen wurde, können Sie as &&
statt verwenden ;
.
sudo bash -c "command1 && command2"
Ich verwende für Ihr Beispiel den folgenden Befehl.
sudo bash -c "add-apt-repository <repo> && apt-get update"
Antwort2
Es gibt verschiedene Probleme, wenn man sich hier mit einem Alias oder einer einfachen Bash-Funktion einklinkt, aber Sie können einen kleinen Wrapper für einen Befehl schreiben und ihn dort einfügen, /usr/local/bin
wo er in Ihrem Pfad Priorität hat.
Das ist einkleiner Trick, um ein Skript zu erstellen und es gleichzeitig zu chmodden. Es wird ein ausführbares Wrapper-Skript in .
abgelegt ./usr/local/bin/add-apt-repository
sudo install -b -m 755 /dev/stdin /usr/local/bin/add-apt-repository << 'EOF'
#!/bin/sh
/usr/bin/add-apt-repository "$@"
apt-get update
EOF
Um dies rückgängig zu machen, löschen Sie einfach /usr/local/bin/add-apt-repository
.
Wenn Sie etwas Fruchtbareres tun möchten (wie Verknüpfen apt-get install
, apt-get update
sodass Sie vor der Installation immer aktualisieren), müssen wir nur das Skript erweitern, um uns die Argumente anzusehen.
sudo install -b -m 755 /dev/stdin /usr/local/bin/apt-get << 'EOF'
#!/bin/sh
if [ "$1" = "install" ] ; then
/usr/bin/apt-get update
fi
/usr/bin/apt-get "$@"
EOF
Bedenken Sie jedoch, dass dadurch ein Update ausgeführt wird, bevorjeden apt-get install
Anruf. Das klingt vielleicht hilfreich, kann in der Praxis aber sehr mühsam sein.
Antwort3
Um bestimmte Befehle in einer bestimmten Reihenfolge auszuführen, wird Shell-Scripting verwendet. Alles was Sie tun müssen, ist: - Öffnen Sie das Terminal durch Drücken von Ctrl+ Alt+ T
und folgen Sie den Schritten:
1. Geben Sie ein gedit filename.sh
2. Nach Eingabe dieses Befehls öffnet sich ein Texteditor, in den Sie die erforderlichen Befehle einzeln in jede Zeile eingeben können. Beispiel:sudo add-apt-repository
apt-get update
3. Nachdem Sie alle Befehle eingegeben haben, speichern Sie und beenden Sie das Programm entweder über die GUI oder durch Drücken von Ctrl+ Sund Ctrl+ Q.
4. Jetzt kehren Sie zum Terminal zurück. Führen Sie es sh filename.sh
im Terminal aus und Ihre Befehle werden ausgeführt, vorausgesetzt, sie enthalten keine Fehler.
Wenn Sie sich über ein Superuser-Konto (root) anmelden, müssen Sie sudo
Ihren Befehl nicht eingeben.
Antwort4
Der einfachste Weg, dies zu tun, besteht darin, Folgendes auszuführen:
sudo add-apt-repository <ppa_name> && sudo apt-get update
Wenn der erste Befehl erfolgreich abgeschlossen wurde, wird der zweite ausgeführt.