Automatorワークフローがあり、アクションの1つはリポジトリのクローンを作成することです。「シェルスクリプトの実行」アクションのコードを次に示します。/bin/bash
重要な場合、コマンドはBashシェル内で実行されます。
SOURCEDIR="${3/\/Volumes/}"
cd "$2"
REPOURL="bob@somedomain.com:$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 .
これで、Automatorアプリは私のマシンで正常に動作します。私のマシン(Macbook Pro)でのgitへのパスは次のとおりです/usr/bin/git
(Xcodeでマシンにgitをインストールしたと思います)。
しかし、私の同僚のマシン(Mac Proでも)Automatorアプリは失敗します。実際、log.txtファイルの出力には次のように記載されています。bash: git: command not found
私の同僚のマシンでは、gitへのパスは次のとおりusr/local/git/bin
です。MacOS XのGoogle Gitインストーラーでgitをインストールしたため、これは違いますが、スクリプトではgitコマンドが重要だとは思いませんでしたコマンドへの絶対パスではなく、さらに同僚はBashスクリプトからgitを正常に実行できますが、ターミナルから直接呼び出された場合は。
それで何が得られますか?オートマトーラーのワークフローはなぜ機能するのに、同僚には機能しないのですか?
BashまたはUnixには、ここでは理解できないが、失われた基本的なものが必要です。