Mit apple ' s Automator, um pass Dateinamen in ein shell-Skript
Habe ich ein automator-script, dass ich würde gerne auf einen Ordner. Ich möchte das Skript für jede Datei in dem Ordner und führe meine shell-Befehl auf. Automator ist eingestellt, um pass input auf stdin, aber ich glaube nicht, ich bin mit stdin richtig unten, können Sie bitte helfen?
for f in "$@"
do
java -Xmx1000m -jar /Users/myprog/myprog.jar $f
done
InformationsquelleAutor John | 2009-12-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die spezielle variable
$@
steht für alle Kommandozeilen-Argumente an das Skript.Den
for
Schleife durch die einzelnen Schritte ein und führt die jar-Datei jedes mal. Sie verkürzt das Skript:da das Standardverhalten von
for
ist die Verwendung$@
.Sollten Sie setzen Sie Anführungszeichen um $f auf das Ende der java-Befehl, falls Leerzeichen in den Argumenten.
InformationsquelleAutor Dennis Williamson
Sind Sie richtig, wenn Sie sagen, du bist "nicht mit stdin richtig". In der Tat, von der Skript-snippet Sie bereitgestellt, die Skript wird davon ausgegangen Sie, dass Sie die Dateien, die als Argumente auf der Befehlszeile ... du bist nicht über stdin an alle!
In der oberen rechten Ecke der " Run Shell Script-Aktion, unter dem X ist ein drop-down-box mit 2 Optionen: 'Pass-Eingang: stdin' und 'Pass-intput: als Argumente'. Diese Optionen bestimmen, wie die ausgewählten Dateien werden an ein Skript übergeben-Aktion. Wenn die option 'Argumente' ausgewählt ist, sollte das Skript die folgende Vorlage verwenden
Diese Vorlage wird bereitgestellt von der Aktion selbst, wenn die 'Argumente' ausgewählt ist.
Auf der anderen Seite, wenn die 'stdin' - option ausgewählt ist, dann müssen Sie das Skript verwenden Sie dieses Template:
(In der Veranstaltung, die Sie nicht wissen, bash-Skripting, alles nach dem # auf der a-Linie ist ein Kommentar)
Beachten Sie, dass die Vorlage, indem Sie die Skript-Aktion ist die einfache, einzigen Befehl
Nicht sehr hilfreich, meiner Meinung nach.
Beachten Sie, dass, bis Sie tatsächlich geben Sie text in den script-Bereich, der Wechsel zwischen 'stdin' und 'Argumente' ändert sich der Inhalt des script-box (ich nehme an, dies ist ein Hinweis auf das, was Ihr Skript Aussehen sollte), aber sobald du etwas eingibst, wird der Wechsel nicht mehr passiert.
InformationsquelleAutor ehzone
Basierend auf was ich gesehen habe, kann man ein handy "service", können Sie mit der rechten Maustaste und konvertieren von Dateien über das Kontextmenü im finder.
Diese eingerichtet:
Ersetzen Sie den vorhandenen text "Katze" mit dem folgenden code:
HINWEIS: Das setup oben konvertieren zu mono - (- c 1 --mix), 16 bit @ 32000hz (LEI16@32000 = little endian 16 bit). Verwenden Sie /usr/bin/afconvert -h im terminal, um zu sehen, alle verfügbaren Optionen.
An der Spitze der editor, den Sie sollten sehen, zwei drop-downs, legen Sie Sie wie folgt:
In der Shell-Skript-editor-Bereich sicherzustellen:
und
Speichern Sie die Sache so etwas wie "Convert to CAF"
InformationsquelleAutor bob
Ich bin mir nicht sicher, ob ich Ihre Frage verstehe, da im Skript nicht zu sein scheinen mit stdin. Die $@ spezielle parameter erweitert, um die positions-Parameter übergeben werden als Argumente in argv. Es funktioniert auf die gleiche Weise, wie wenn Sie aufgerufen, das Skript direkt aus der shell so:
Wollte man die Argumente von stdin, Sie könnte etwas wie das hier tun:
InformationsquelleAutor Ned Deily