per script terminalbefehl ausführen

Diskutiere per script terminalbefehl ausführen im Scripting und Automatisierung Forum

  1. mallwart

    mallwart Thread Starter Mitglied

    Beiträge:
    187
    Zustimmungen:
    0
    Mitglied seit:
    04.08.2003
    gibt es eine möglichkeit mit einem script
    1) ein terminal-fenster zuöffnen ( tell?)
    2) in diesem fenster einen befehl ausführen zulassen ( z.z. mache ich das mit copy|past , was mich einfach nervt )
    3) wieder zum finder zurückzukehren ?
     
  2. Andi

    Andi Mitglied

    Beiträge:
    7.874
    Zustimmungen:
    1.141
    Mitglied seit:
    16.05.2002
    ...

    Hallo mallwart,

    ja das geht mit dem Befehl "do shell script" gefolgt von Deinem Terminalbefehl.
    Die umgekehrte Richtung wäre "osascript" gefolgt von einem Applescript im Terminal (man osascript)

    Um ein Terminalfenster zu bekommen musst Du den Befehl an das Terminal senden.

    ein kleines Beispiel, wie es ungefähr funktioniert:

    tell application "Terminal"
    activate
    set myShellScript to "osascript -e 'tell app \"Finder\" to activate'"
    do shell script myShellScript
    end tell

    Der Befehl "do shell script" kann aber auch direkt ausgführt werden.
    Kritisch wird es wegen Zeitüberschreitungen. Da musst Du fummeln.

    Was solls werden? ;)

    Gruß Andi
     
  3. mallwart

    mallwart Thread Starter Mitglied

    Beiträge:
    187
    Zustimmungen:
    0
    Mitglied seit:
    04.08.2003
    etwas ganz profanes – ich möchte wissen , wo e.t. wohnt und lasse deshalb im terminal setiathome laufen . dazu muss folgendes ans terminal ( nein ich will nicht in die crontab , sondern einfach nach laune/bei bedarf starten ) übergeben werden:
    » /Applications/systempflege/setiathome_darwin/setiathome -nice 1 -verbose«
     
  4. Andi

    Andi Mitglied

    Beiträge:
    7.874
    Zustimmungen:
    1.141
    Mitglied seit:
    16.05.2002
    ...

    Hallo mallwart,

    dann sollte ja:

    do shell script "/Applications/systempflege/setiathome_darwin/setiathome -nice 1 -verbose"

    reichen..

    Gruß Andi
     
  5. mallwart

    mallwart Thread Starter Mitglied

    Beiträge:
    187
    Zustimmungen:
    0
    Mitglied seit:
    04.08.2003
    sollte , tut es aber leider nicht .
    das script hat folgenden inhalt:
    <
    tell application "Terminal" activate
    do shell script "/Applications/systempflege/setiathome_darwin/setiathome -nice 1 -verbose"
    end tell
    >

    der befehl an sich funktioniert im terminal , aber wenn ich ihn in ein script einbaue und das script starte , passiert folgendes :
    das terminal startet und hängt sich dann auf . beim genaueren hinschauen ist dann auch die fehlermeldung zu lesen , nämlich das die apllikation nicht auf bestimmte files zugreifen kann ( in meinem fall setiathome und seine *.sah-files ) weil diese in gebrauch sind . kann aber nicht sein , denn ich starte die app ja gerade . leider sind die zerstörungen des scriptes bei den file-attributen so stark , dass ich seti immer wieder neu installieren muss .
    fazit: ich bleibe vorerst bei copy|past .
    obwohl mich schon interessieren würde , was ich falsch mache bei 3 code-zeilen ?
     
  6. Snow

    Snow Mitglied

    Beiträge:
    262
    Zustimmungen:
    2
    Mitglied seit:
    24.03.2003
    'do shell script' ist der Befehl, wenn man kein Terminal benutzen will. - Also ein Shell-Script direkt aus AppleScript heraus ausführen.

    Wenn's im Terminal sein soll, benutzt man "do script" gefolgt vom Scripttext.

    Dein AppleScript könnte demnach so aussehen:

    do shell script "/Applications/systempflege/setiathome_darwin/setiathome -nice 1 -verbose"

    oder so:

    tell application "Terminal"
    activate
    do script "/Applications/systempflege/setiathome_darwin/setiathome -nice 1 -verbose"
    end tell
     
  7. mallwart

    mallwart Thread Starter Mitglied

    Beiträge:
    187
    Zustimmungen:
    0
    Mitglied seit:
    04.08.2003
    danke snow carro , genau das war's , mein script arbeitet wunderbar .
    und wieder etwas dazu gelernt .
    ich liebe diese forum clap

    ps: gibt's zufällig noch eine gute buchempfehlung »apple script für einsteiger?
     
  8. Andi

    Andi Mitglied

    Beiträge:
    7.874
    Zustimmungen:
    1.141
    Mitglied seit:
    16.05.2002
    ...

    Hallo mallwart,

    tut mir leid. Snow hat recht. "do script" im Terminal... Ich habs zwar probiert und mein Beispiel funktioniert auch - was solls, Hauptsache Dein Problem ist gelöst.

    Gruß Andi
     
  9. mallwart

    mallwart Thread Starter Mitglied

    Beiträge:
    187
    Zustimmungen:
    0
    Mitglied seit:
    04.08.2003
    kein grund zur sorge oder gar anlass schlafloser nächte , dein tipp war doch gut . außerdem hat er mir gezeigt :
    a) wo gibt's hilfe
    b) versuch's einfach und lass' nicht locker .
    deshalb natürlich auch dank an dich .
     
  10. Andi

    Andi Mitglied

    Beiträge:
    7.874
    Zustimmungen:
    1.141
    Mitglied seit:
    16.05.2002
    ...

    ;)
     
Die Seite wird geladen...
Ähnliche Themen - script terminalbefehl ausführen Forum Datum
Passwort mit einem "@" in einem Script verwenden Scripting und Automatisierung 04.07.2018
Absoluter Neuling braucht script zum hinzufügen von Druckern Scripting und Automatisierung 12.06.2018
Wlan Verbindung per Script überwachen. Scripting und Automatisierung 05.05.2018
Installierte Programme mittels Terminal verpacken. [GELÖST] Scripting und Automatisierung 07.02.2018
Script verhindert runterfahren des Mac. Scripting und Automatisierung 26.01.2018
Automator / Script zum Verbinden von Netzlaufwerk/NAS Scripting und Automatisierung 27.12.2017
Script das Prozessliste überwacht und Programm automatisch startet wenn nicht mehr läuft. Scripting und Automatisierung 16.12.2017
Script erstellen im Auftrag Scripting und Automatisierung 08.12.2017
Passwort für "networksetup" umgehen / Apple Script Scripting und Automatisierung 20.02.2017
Terminalbefehl im Script ausführen Scripting und Automatisierung 27.09.2008

MacUser.de weiterempfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.