‘Run Shell Script’명령 내에서 git 명령을 찾지 못하면 Automator Workflow가 실패합니까? 도움이 필요하다 리포지토리를 복제하는 것입니다. 다음은 ‘Run Shell

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에 대한 근본적인 것이 있어야합니다.



답변

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

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

스크립트의 시작 부분에


답변

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

source ~/.bash_profile

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


답변

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

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

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


답변

워크 플로가 다른 위치에 git이있는 두 시스템에서 작동하게하려면 다음에 :설명 된대로 patrix가 언급 한 PATH 변수에 각 위치를 추가 하십시오 ( https://developer.apple.com/library/mac). /documentation/AppleApplications/Conceptual/AutomatorConcepts/Articles/ShellScriptActions.html

따라서 Workflow Shell 스크립트 맨 위에 다음을 추가합니다.

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


답변