Tôi có một quy trình làm việc của Automator và một trong những hành động là sao chép một kho lưu trữ. Đây là mã cho hành động 'Run Shell Script'. Lệnh được chạy trong shell Bash /bin/bash
nếu điều đó quan trọng:
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 .
Bây giờ Ứng dụng Automator chạy tốt trên máy của tôi. Đường dẫn đến git trên máy của tôi (A Macbook Pro) là: /usr/bin/git
(Tôi tin rằng tôi đã cài đặt git trên máy của mình thông qua Xcode)
Nhưng trên máy của đồng nghiệp của tôi (Cũng là Mac Pro), Ứng dụng Automator không thành công. Trong thực tế, đầu ra của tệp log.txt nói:bash: git: command not found
Bây giờ trên máy của đồng nghiệp của tôi, đường dẫn đến git là : usr/local/git/bin
, trong đó, vâng, khác với vì anh ta đã cài đặt git thông qua Trình cài đặt Git của Google cho Mac OS X, nhưng tôi không nghĩ nó có vấn đề vì trong kịch bản lệnh git không phải là đường dẫn tuyệt đối đến lệnh và hơn nữa đồng nghiệp của tôi có thể chạy git bình thường từ tập lệnh Bash nhưng khi được gọi trực tiếp từ Terminal.
Vì vậy, những gì cho? Tại sao quy trình làm việc của máy tự động làm việc cho tôi mà không phải cho đồng nghiệp của tôi?
Phải có một cái gì đó cơ bản về Bash hoặc Unix mà tôi không hiểu ở đây nhưng tôi đã lạc lối.