Wie kann ich einen Eintrag im Ordner /Applications erstellen, der einen Befehl im Terminal ausführt?

Ich möchte ein Element im /ApplicationsOrdner haben, das ein neues Terminalfenster öffnet und einen bestimmten Befehl darin ausführt. Wie kann ich das erstellen?

Benötigen Sie das Terminalfenster oder führen Sie einfach das Befehlszeilenprogramm aus?
@Mark Ich brauche das Terminalfenster, damit ich die Ausgabe des Befehls sehen kann.
Verzeihen Sie mir die Frage - aber was ist das "Anwendungsmenü" und wie unterscheidet es sich von einem Textdokument, das den Befehl enthält, den Sie ausführen möchten?
@bmike Mit "Anwendungsmenü" beziehe ich mich auf diese Vorrichtung . Wie nennt man es? Bewerbungsort?
@ændrük Das ist nur der /ApplicationsOrdner. (kein Trolling oder Bevormundung beabsichtigt)
Danke - ich kenne es als den Anwendungsordner, der eine der Verknüpfungen in einer Finder-Seitenleiste ist. Hervorragende Aufklärung! Danke schön.

Antworten (5)

  1. Erstellen Sie eine neue Textdatei, beginnend mit #!/bin/bashund gefolgt von Ihrem Befehl

    #!/bin/bash
    
    echo 'Hello world'
    
  2. Speichern Sie mit .commandoder .toolals Erweiterung wiemyEchoCommand.command

  3. Setzen Sie das Ausführungsrecht für diese Datei mit chmoddem Befehl.
  4. Sie müssen nur auf diese neu erstellte Datei doppelklicken, Terminal wird ihren Inhalt öffnen und ausführen.

Verwenden Sie Automator , den Apple zu einem Teil von OSX gemacht hat.

Erstellen Sie einen Arbeitsablauf

Wählen Sie im Workflow Dienstprogramme/Run Shell Script

Speichern Sie, indem Sie das Dateiformat in Anwendung ändern - dies ergibt eine .app und wählt das Verzeichnis als /Applications aus

EDIT, um die Ausgabe anzuzeigen. Der Workflow muss aus drei Schritten bestehen

1) Text->Neues TextEdit-Dokument erstellen
2) Die Dienstprogramme/Shell-Skript ausführen
3) Text->Inhalt des TextEdit-Dokuments festlegen

... und kopieren Sie die resultierende .appDatei in den Ordner /Applications, damit sie dort angezeigt wird, wo Sie (op) gesagt haben
Mir ist nicht klar, wie ich den Automator-Workflow veranlassen soll, ein neues Terminalfenster zu öffnen und den Befehl darin auszuführen. Können Sie das bitte näher erläutern?

Spieltypus

Es kann verwendet werden, um native, fehlerfrei integrierte Mac OS X-Anwendungen aus interpretierten Skripten wie Shell-Skripten oder Perl- und Python-Programmen zu erstellen.

Die meisten Leute legen einfach ein Shell-Skript in einen beliebigen Ordner und machen es ausführbar mit chomd a+x. Sie können jeden alten Texteditor verwenden und das Skript als einfachen Text speichern. Wenn Sie die Skripte nicht in dem /ApplicationsOrdner speichern möchten, ist das auch in Ordnung - es spielt keine Rolle, wo Sie sie speichern, solange sie lesbar und ausführbar sind.

Wenn Sie die Datei als script.bash.command- speichern, müssen Sie Terminal nicht mit .sh oder .bash verknüpfen, da es standardmäßig Befehlsdateien ausführt. Wenn das Skript endet, wird die Terminalsitzung abgemeldet, sodass der Befehl ausgeführt und beendet wird, sodass Sie die Ergebnisse sehen können. Wenn Sie jedoch ein funktionierendes Fenster wünschen, müssen Sie ein anderes Fenster im Terminal öffnen.

Geht das so für dich?

Vielleicht brauchen Sie so etwas wie DTerm ? Es ist nur eine Verknüpfung zum Aufrufen entfernt und kann kostenlos aus dem AppStore installiert werden. Sie können es in Ihre Startelemente aufnehmen und bei Bedarf verwenden. Wenn Ihr Befehl eine Ausgabe liefert, zeigt DTerm dies in einem schwebenden Fenster an.

DTerm ist nur ein Terminal und produziert keine App
Ich weiß das, aber wenn Sie den zweiten Kommentar zu der Frage überprüfen, würden Sie denken, dass die Person ein Ergebnis eines Befehls sehen muss, kein Programm/App. In diesem Licht könnte diese Lösung nützlich sein, ohne ein Automator-Skript auszuführen.