Erstellen einer universellen (Skript-) Datei für einen Mac basierend auf mehreren Terminalbefehlen

19

Ich verwende mehrere Terminalbefehle zur Fehlerbehebung, indem ich sie einzeln in das Terminalfenster eingebe.

Für diese Befehle muss das Kennwort des Benutzers eingegeben werden.

Ich suche nach einer Möglichkeit, eine universelle (Skript-) Datei mit diesen Befehlen zu erstellen. Ich möchte die Datei auf einem Mac ausführen können, indem ich darauf doppelklicke oder die Datei über das Terminal-Symbol ziehe.

Ich habe so etwas noch nie gemacht. Gibt es eine Möglichkeit, ein solches Skript zu erstellen? Bitte beraten.

0lesya
quelle
Wollen Sie fragen, ob Sie ein Skript ausführen möchten, ohne dass der Benutzer sein Kennwort eingibt?
Allan
@Allan Ich möchte eine Datei anstelle mehrerer Befehle ausführen . Es wäre gut, es auszuführen, ohne dass der Benutzer sein Kennwort mindestens einmal eingeben muss, aber höchstwahrscheinlich unmöglich, wenn ich mich nicht irre.
0lesya
Das ist definitiv möglich, es sei denn, Sie müssen etwas tun, das einen Administrator erfordert - siehe meine Antwort unten
Cullub

Antworten:

29

Kurze Antwort

Ein .commandSkript sollte den Trick machen


Schritt für Schritt

  1. Öffnen Sie TextEdit und erstellen Sie eine neue Datei
  2. Konvertieren Sie es in einfachen Text, indem Sie auf Format> Einfachen Text erstellen klicken
  3. Fügen Sie Ihre Befehle hinzu, einen pro Zeile. Zum Beispiel könnten Sie Folgendes tun:
    #! /bin/bash cd ~/Desktop mkdir myCoolFolder cd myCoolFolder

  4. Führen Sie chmod u+x ~/Desktop/myCommandScript.commandin Ihrem Terminal ~/Desktop/myCommandScript.commandden Pfad zu Ihrem Skript aus. Dadurch erhält das Terminal die Berechtigung, die Datei auszuführen.

  5. Sie sind fertig! Doppelklicken Sie auf die auszuführende Datei. Das Ziehen über das Terminalsymbol funktioniert ebenfalls.

Anmerkungen:

  • Wenn Sie etwas tun müssen, das Root-Zugriff (Administratorzugriff) erfordert, können Sie Ihrem Befehl ein Präfix voranstellen sudo. Wenn das Skript ausgeführt wird, müssen Sie Ihr Kennwort eingeben (und Administrator sein)
  • Wenn der Endbenutzer kein Administrator ist, aber Sie etwas tun müssen, das Root-Zugriff erfordert, können Sie verwenden su someAdminName, wodurch der Befehl ausgeführt wird als someAdminName(Sie benötigen sein Kennwort).

Weitere Informationen finden Sie auch hier unter Stapelüberlauf.

Cullub
quelle
Gibt es eine Möglichkeit, eine Befehlsdatei zu erstellen, um sich nicht abzumelden? Ich möchte eine Befehlsdatei, die das Terminal mit vordefinierten Pfadvariablen öffnet.
Royi
7

Ein Skript besteht nur aus einer Reihe von Befehlen. Sie können es also in ein Bash-Skript einfügen.

#!/bin/bash

command 1
command 2
command 3

Nun hängt dies alles von den jeweiligen Befehlstypen ab und davon, ob ein Benutzereingriff erforderlich ist oder nicht.

Wenn Sie jedoch beispielsweise Diagnoseinformationen erhalten, können Sie über ein entsprechendes Skript verfügen

#!/bin/bash

# Get SMART status of main drive
diskutil info disk0 | grep -i smart

# Get the model of the machine in question
system_profiler SPHardwareDataType | grep -i Identifier

Das sind nur Beispiele. Beachten Sie, dass alle generierten Ausgaben an die Konsole (Bildschirm) gesendet werden. Sie können die Ausgabe jedoch in eine Datei umleiten, indem Sie >> /path/to/outputfile.txtam Ende jedes Befehls einen Anhang anfügen, sodass Sie eine Datei haben, die Sie analysieren können, sobald die Datei ausgeführt wurde.

Sie können die Datei benennen diagnostics.shund an einer beliebigen Stelle ablegen. So stellen Sie sicher , dass Sie es , indem Sie den Befehl ausführbar zu machen chmod +x diagnostics.shund zu verwenden ./diagnostics.shes oder auszuführen doppelklicken Sie darauf, um sie auszuführen , wenn es auf dem Desktop gespeichert ist .

Allan
quelle