2012-05-25 5 views

답변

2

launchd에이 .plists의 값에 어떤 대체를 수행하지 않습니다 (그것은 내가 "$ 홈/빈 /로 myscripf"로 정의하고 싶습니다 "프로그램"키이다), 그래서이 당신이하는 것을 시도하는 형태로 할 수 없습니다. 실행할 수있는 명령을 쉘에 전달하고 변수 대체를 수행하고 명령을 실행하십시오. 예를 들어, 당신이 가진 그 Program 키를 대체 할 수 :

<key>ProgramArguments</key> 
<array> 
    <string>/bin/sh</string> 
    <string>-c</string> 
    <string>exec $HOME/tmp/myscript</string> 
</array> 

합니다 (exec 접두사가 정말 필요가 없습니다 그냥 사소한 최적화의 참고 그것은 쉘 스크립트 자체를 대체하기보다는 시작합니다. 스크립트를 하위 프로세스로 보낸 다음 끝내기 위해 대기합니다.)

3

EnableGlobbing은 ProgramArguments (프로그램 제외)의 물결표 및 와일드 카드 확장을 활성화합니다.

<key>EnableGlobbing</key> 
<true/> 
<key>ProgramArguments</key> 
<array> 
    <string>~/bin/myscript</string> 
</array> 

ProgramArguments는 문자열이 아닌 문자열 배열 일 수 있습니다. Tilde 확장은 기본적으로 WatchPaths에서도 작동합니다.

관련 문제