Shell-Skript per Doppelklick ausführen

fams

fams

Mitglied
Thread Starter
Dabei seit
23.01.2005
Beiträge
32
Reaktionspunkte
3
Hallo,
wie bringt man den Finder dazu, ein Shellskript per Doppelklick auszuführen und nicht im Texteditor anzuzeigen?

Danke für eure Hilfe!

Grüße
Frank
 
Einfach .command dranhaengen, ich glaube
aber, dass es da noch einen anderen Weg
gibt.
 
moses_78 schrieb:
ich glaube aber, dass es da noch einen anderen Weg gibt.

Klar, aus der Shell heraus . foobar oder source foobar oder ./foobar verwenden.

SCNR. Ich sollte mir eine Signatur zulegen...
 
Hallo,

aus der Shell heraus funktioniert natürlich das Shellskript :rolleyes:
Das anhängen von .command funktioniert nicht, der Finder öffnet trotzdem das Skript im Texteditor statt eine Shell damit auszuführen.
??
 
Im Automator gibt es die Option "Shell-Script ausführen". Wenn du das Shell-Script hier eingibst und als .app speicherst, sollte es gehen, denke ich.
 
fams schrieb:
...
Das anhängen von .command funktioniert nicht, der Finder öffnet trotzdem das Skript im Texteditor statt eine Shell damit auszuführen.
Ist das Skript als ausführbare Datei markiert?
 
weil ich selber gerade danach gesucht habe - auch wenn es alt ist, hier die Lösung, die bei mir mit OS-X 10.7 funktioniert:

- Die Shell-Datei (Textdatei mit .sh-Endung in meinem Fall) im Finder markieren
- die Eigenschafften anzeigen lassen (cmd+i)
- unter "Ausführen mit" einfach die Liste aufklappen und "anderem Programm" wählen. Dann im Programme-Ordner "Terminal" wählen
- Die folgende Warnung bestätigen (System ist nicht bekannt, ob Terminal mit der Erweiterung .sh umgehen kann)

Ab jetzt genügt ein Doppelklick im Finder auf diese .sh Datei. Es öffnet sich ein Terminalfenster und das Skript läuft :)
 
  • Gefällt mir
Reaktionen: Meilenstein und MarkusMuller
Ansonsten alternativ das Tool "Platypus" verwenden. Das baut Dir einen Wrapper um das Script und man hat dann eine .app. Habe das schon sehr oft benutzt und es ist echt gut.
 
  • Gefällt mir
Reaktionen: MarkusMuller
in der shell ./script vorher natürlich die rechte auf das script setzen, bzw. es ausführbar machen, im falle das es noch nicht ausführbar ist.
chmod 744 "script"
 
Platypus kann ich auch empfehlen. Ist bei mir viel im Einsatz, da ich recht viel ueber scripte automatisiert habe.
 
weil ich selber gerade danach gesucht habe - auch wenn es alt ist, hier die Lösung, die bei mir mit OS-X 10.7 funktioniert:

- Die Shell-Datei (Textdatei mit .sh-Endung in meinem Fall) im Finder markieren
- die Eigenschafften anzeigen lassen (cmd+i)
- unter "Ausführen mit" einfach die Liste aufklappen und "anderem Programm" wählen. Dann im Programme-Ordner "Terminal" wählen
- Die folgende Warnung bestätigen (System ist nicht bekannt, ob Terminal mit der Erweiterung .sh umgehen kann)

Ab jetzt genügt ein Doppelklick im Finder auf diese .sh Datei. Es öffnet sich ein Terminalfenster und das Skript läuft :)
Also ich wollte das mit dem Text
"mv /Users/myName/Documents/Testordner/*.aux /Users/myName/Documents/Testordner/build"
machen.
obiges ist der Text-Inhaltdatei.
Wenn ich nun wie Du vorgehen, so erscheint im Terminal nur der Dateipfad der Datei. Ausgeführt wird nix. Kann mir jemand weiterhelfen?
 
Pfade mit Leerzeichen sind zu quoten.

mv "von" "zu"
 
Sooo, nun klappt es doch quasi.

Ich habe jetzt einen Datei mit folgendem Inhalt

Code:
cd /Users/maName/Documents/Testordner
mv *.aux builder
mv *.log builder
mv *.gz builder
mv *.pdf Ausgabedateien

Danach habe ich diese Datei mittels chmod 755 "Dateiname" in eine ausführbare Datei wandeln lassen.
Der Doppelklick auf diese Datei führt nun dazu, dass obige Befehle ausgeführt werden!
Soweit vielen Dank!

Eine Sache wäre nun noch super:
Die Datei ist so, wie sie jetzt ist, noch auf einen Ort gemünzt, nämlich /Users/maName/Documents/Testordner.

Gibt es eine Möglichkeit, statt "/Users/maName/Documents/Testordner" automatisch den Pfad der ausführbaren Datei an diese Stelle setzen zu lassen? Dann könnte ich die Datei in jeden Ordner der betroffen ist hineinkopieren und sie muss nicht mehr angepasst werden.
 
Sooo, nun klappt es doch quasi.

Ich habe jetzt einen Datei mit folgendem Inhalt

Code:
cd /Users/maName/Documents/Testordner
mv *.aux builder
mv *.log builder
mv *.gz builder
mv *.pdf Ausgabedateien

Danach habe ich diese Datei mittels chmod 755 "Dateiname" in eine ausführbare Datei wandeln lassen.
Der Doppelklick auf diese Datei führt nun dazu, dass obige Befehle ausgeführt werden!
Soweit vielen Dank!

Eine Sache wäre nun noch super:
Die Datei ist so, wie sie jetzt ist, noch auf einen Ort gemünzt, nämlich /Users/maName/Documents/Testordner.

Gibt es eine Möglichkeit, statt "/Users/maName/Documents/Testordner" automatisch den Pfad der ausführbaren Datei an diese Stelle setzen zu lassen? Dann könnte ich die Datei in jeden Ordner der betroffen ist hineinkopieren und sie muss nicht mehr angepasst werden.

print working directory

"$PWD" als Pfad setzt dir die Dateien darin wo das Shell Script gerade ausgeführt wird.
mv *.aux "$PWD"
 
Danke für die Antworten.

Ich probiere gerade:
Code:
cd $PWD
rm *.aux
rm *.log
rm *.gz

bzw.
Code:
 $PWD
rm *.aux
rm *.log
rm *.gz

diese führt zu der Fehlermeldung:

Code:
rm: *.aux: No such file or directory
rm: *.log: No such file or directory
rm: *.gz: No such file or directory
 
Äh, wenn du keine absoluten Pfade verwendest, dann ist es eh relativ.
Danke, das hilft natürlich sehr.
Mal im Ernst: Du brauchst Du hier wirklich nicht beteiligen, wenn Du mich nur veräppeln willst oder meine angebliche Blödheit zur Schau stellen möchtest.
Für konstruktive Mithilfe bin ich dagegen dankbar und helfe gerne anderen bei angenehmen Umgang.
 
Zurück
Oben Unten