Ich habe einen Automator-Workflow und eine der Aktionen besteht darin, ein Repository zu klonen. Hier ist der Code für die Aktion "Shell-Skript ausführen". Der Befehl wird in der Bash-Shell ausgeführt, /bin/bash
wenn es darauf ankommt:
SOURCEDIR="${3/\/Volumes/}"
cd "$2"
REPOURL="[email protected]:$SOURCEDIR"
WORKINGDIR="$1"
# Capture any errors with cloning process in log file
git clone "$REPOURL" "$WORKINGDIR" &> ./log.txt
// For debugging
echo "exit code: $?"
echo "PPID: $PPID"
open .
Jetzt läuft die Automator App einwandfrei auf meinem Rechner. Der Pfad zum Git auf meinem Computer (A Macbook Pro) lautet: /usr/bin/git
(Ich glaube, ich habe Git über Xcode auf meinem Computer installiert.)
Aber auf dem Computer meines Kollegen (auch ein Mac Pro) schlägt die Automator-App fehl. Tatsächlich lautet die Ausgabe der Datei log.txt wie folgt:bash: git: command not found
Jetzt ist der Pfad zu git auf dem Computer meines Kollegen:, usr/local/git/bin
was ja anders ist, weil er git über den Google Git Installer für Mac OS X installiert hat, aber ich dachte nicht, dass es wichtig sein sollte, weil im Skript der Befehl git steht ist kein absoluter Pfad zum Befehl und außerdem kann mein Kollege git normal von einem Bash-Skript ausführen, aber wenn er direkt vom Terminal aus aufgerufen wird.
Also was gibt es? Warum funktioniert der Automator-Workflow bei mir, nicht aber bei meinem Kollegen?
Es muss etwas Grundlegendes an Bash oder Unix geben, das ich hier nicht verstehe, aber ich bin verloren.
Für eine allgemeinere Lösung der Bash-Umgebung in Automator, die sich von Ihrer eigenen unterscheidet, können Sie einfach Ihr persönliches Bash-Profil in der ersten Zeile des Bash-Skripts in Automator laden:
Dadurch werden der Pfad und alle anderen Umgebungsvariablen, die Sie verwenden, in Ihrem Automator-Skript verfügbar.
quelle
Ich habe das gleiche Problem gelöst, dass dieselben "Service" -Workflows auf unterschiedlich konfigurierten Computern ausgeführt werden, indem ich überprüft habe, was passiert, wenn das Terminal die Shell startet, und schließlich den folgenden Snippet am Anfang aller meiner "Run Shell Script" -Aktionen hinzugefügt habe:
Dies deckt alle Fälle ab, auf die ich bisher gestoßen bin.
quelle
Wenn Sie möchten, dass der Workflow auf beiden Computern funktioniert, auf denen Git an verschiedenen Orten installiert ist, fügen Sie jeden Ort der von patrix erwähnten PATH-Variablen hinzu, die durch ein getrennt ist
:
, wie hier erläutert: https://developer.apple.com/library/mac /documentation/AppleApplications/Conceptual/AutomatorConcepts/Articles/ShellScriptActions.htmlGanz oben in Ihrem Workflow-Shell-Skript würden Sie also Folgendes hinzufügen:
PATH=/usr/bin:/usr/local/bin export PATH
quelle