'Run Shell Script'명령 내에서 git 명령을 찾지 못하면 Automator Workflow가 실패합니까? 도움이 필요하다


20

Automator 워크 플로가 있으며 작업 중 하나는 리포지토리를 복제하는 것입니다. 다음은 'Run Shell Script'동작에 대한 코드입니다. 명령은 Bash 셸 내에서 실행됩니다 /bin/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과 같습니다. 는 명령의 절대 경로가 아니며 더 많은 동료가 Bash 스크립트에서 정상적으로 git을 실행할 수 있지만 터미널에서 직접 호출 할 때 더 좋습니다.

무엇을 제공합니까? 왜 오토메이터 워크 플로가 나에게 도움이되지만 동료에게는 도움이되지 않습니까?

여기서 이해하지 못하지만 잃어버린 Bash 또는 Unix에 대한 근본적인 것이 있어야합니다.

답변:


35

Automator를 통해 실행되는 스크립트는 일반적으로 포함되지 않은 기본 검색 경로를 사용합니다 /usr/local/bin. 귀하의 경우 쉬운 수정은 넣어 것입니다

export PATH=/usr/local/bin:$PATH

스크립트의 시작 부분에


나는 그 후 실제로 시도했지만 작동하지 않았습니다.
racl101

12

자신과 다른 automator의 bash 환경에 대한보다 일반적인 솔루션을 위해 automator bash 스크립트의 첫 번째 줄에 개인 bash 프로파일을 간단히로드 할 수 있습니다.

source ~/.bash_profile

이를 통해 경로 및 기타 환경 변수를 자동화 스크립트에서 사용할 수 있습니다.


이 솔루션을 선호합니다. bash 로그인 스크립트에 대한 좋은 개요는 여기
Jay

4

터미널이 셸을 시작할 때 발생하는 상황을 확인하고 결국 모든 "셸 실행 스크립트"작업의 맨 위에 다음 스 니펫을 추가하여 다르게 구성된 컴퓨터에서 실행되는 동일한 "서비스"워크 플로와 동일한 문제를 해결했습니다.

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi
if  [ -f "$HOME"/.profile ]; then
    source "$HOME"/.profile
elif [ -f "$HOME"/.bash_profile ]; then
    source "$HOME"/.bash_profile
elif [ -f "$HOME"/.bashrc ]; then
    source "$HOME"/.bashrc
fi

이것은 지금까지 발생한 모든 경우에 적용됩니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.