In Automator, wie der Ordnerinhalt nach einer Aktion "Shell-Skript ausführen" abgerufen wird

0

Ich habe eine Automator-Anwendung, in der ich einen Ordner darauf ziehen möchte, und die ein Duplikat (Geschwister) dieses Ordners mit den umbenannten Dateien des Duplikats erstellen soll. Beginnen Sie beispielsweise mit Folgendem:

root
 +--svgs
     |--icons_a.svg
     +--icons_b.svg

Wenn svgsich das Verzeichnis auf die Anwendung ziehe, möchte ich Folgendes erreichen:

root
 |--svgs
 |   |--icons_a.svg
 |   +--icons_b.svg
 +--renamed-svgs
     |--a.svg
     +--b.svg

Ich habe Folgendes versucht: Bildbeschreibung hier eingeben

Aber es wirft folgendes auf:

Bildbeschreibung hier eingeben

Sie sind sich nicht sicher, wie Sie den Fehler beheben sollen, aber wie kann ich die erste Aktion "Shell-Skript ausführen" ausführen, um entweder den Ordner "renamed-svgs" oder den Inhalt dieses Ordners zurückzugeben?

Oder gibt es einen besseren Weg, um das Ganze zu machen?

robertwbradford
quelle

Antworten:

1

Generell ist es ratsam, eine Variable in doppelte Anführungszeichen zu setzen.

Verwenden Sie den echoBefehl, um den Ordner " renamed-svgs " zurückzugeben

rm -rf "$@"/../renamed-svgs
cp -rf "$@"/ "$@"/../renamed-svgs
echo "$@"/../renamed-svgs/

Oder verwenden Sie den findBefehl, um Dateien zurückzugeben, deren Name mit icons_ beginnt.

rm -rf "$@"/../renamed-svgs
cp -rf "$@"/ "$@"/../renamed-svgs
find "$@/../renamed-svgs/" -type f -maxdepth 1 -iname 'icons_*' -print
jackjr300
quelle
0

Dieser Fehler tritt genau dann bei Bash-Skripten auf, wenn die Anwendung, mit der kommuniziert wird, keine laufende Anwendung ist, wenn mit ihr interagiert wird. Nein, Automator ist fantastisch, um die Aufgabe besser ausführen zu können.

  • Ich weiß, keine vollständige Antwort, aber ich kann nicht kommentieren und meine Aussage ist wahr.
Jahh
quelle