Bash-Skript if - else Bedingungen

Bash-Skript if - else Bedingungen

Ich möchte ein Bash-Skript erstellen, das ein bestimmtes Installationsprogramm aus dem Internet herunterlädt, es installiert, eine Desktop-Datei erstellt, die es startet, es automatisch startet und dann das Installationsprogramm entfernt. Es gibt jedoch ein paar Dinge, die das Skript überprüfen soll. Diese Dinge sind:

  • die Existenz des Installationsprogramms (falls es nicht existiert, laden Sie es herunter, andernfalls machen Sie es ausführbar)

  • das Vorhandensein einer vorherigen Installation (falls vorhanden, legen Sie deren ausführbare Deinstallationsdatei fest, führen Sie sie aus und entfernen Sie alles, was sie hinterlassen hat, andernfalls fahren Sie mit dem nächsten Schritt fort)

  • den Status des gksu-Pakets über apt list | grep gksu (wenn es installiert ist, dann weiter mit dem nächsten Schritt, andernfalls installieren Sie es) und

  • die Ausgabe von gksu example.run (wenn eine Zeile „GNOME_SUDO_PASS“ vorhanden ist, wiederholen Sie gksu example.run, andernfalls fahren Sie mit dem nächsten Schritt fort)

Antwort1

Bedingung: Installer – ls. | grep example.runchmod +x pelda.run sonst wget download/link/of/example.run

So wie ich das oben Gesagte verstehe, lässt es sich wie folgt übersetzen:

if [ -f example.run ]
then
    chmod +x pelda.run
else
    wget download/link/of/example.run
fi

[ -f example.run ]ist ein Beispiel für die Verwendung des testBefehls. Wenn eine Datei mit dem Namen example.runexistiert, setzt der Testbefehl den Rückgabecode 0 (was „wahr“ bedeutet). Wenn nicht, setzt er den Rückgabecode 1 (was „falsch“ bedeutet).

Bedingung: gksu - apt list --installed | grep gksu, wenn !exists, dann sudo apt install gksu, sonst gksu pelda.run

So wie ich das oben Gesagte interpretiere, lässt es sich wie folgt übersetzen:

if apt list --installed | grep gksu
then
    gksu pelda.run
else
    sudo apt install gksu
fi

Hier nutzen wir die Tatsache, dass grepein Rückgabecode gesetzt wird, je nachdem, ob eine Übereinstimmung gefunden wird oder nicht. apt list --installedgibt eine Liste der installierten Pakete zurück. Wenn die Ausgabe irgendwo die Zeichenfolge enthält gksu, grepwird ein Rückgabecode von 0 (was wahr bedeutet) gesetzt und die thenKlausel wird ausgeführt. Wenn dies nicht der Fall ist, elsewird die Klausel ausgeführt.

verwandte Informationen