Automator 서비스에서 쉘 스크립트를 실행하고 출력을 표시하려면 어떻게해야합니까? 버튼으로 클릭하고 서비스를 선택할 수 있습니다.

Automator를 사용하여 쉘 스크립트 (ffmpeg 트랜스 코드를 h264로 변환)를 ‘서비스’로 실행하여 고해상도 .mov 파일을 마우스 오른쪽 버튼으로 클릭하고 서비스를 선택할 수 있습니다. 잘 작동하지만 ffmpeg이므로 터미널 창에서 출력을 보는 것이 좋습니다. 실시간으로 결과를 볼 수있는 방법이 있습니까?

차이가 없어야하지만 다음과 같은 경우를 대비하여 스크립트가 있습니다.

for f in "$@"
do
/usr/local/bin/ffmpeg -i "$f" -c:v libx264 -vf yadif -pix_fmt yuv420p -crf 21 -preset slow -movflags faststart -c:a copy ${f%.*}_h264_yadif.mov
done


답변

이 AppleScript는 지정한 명령으로 터미널 윈도우를 시작합니다.

실행시 {input, parameters}
    응용 프로그램에게 "터미널"을 말하십시오
        활성화
        filesString을 ""로 설정
        입력에서 file_로 반복
            filesString을 filesString & ""& 인용 형식 (file_의 POSIX 경로)으로 설정
        끝 반복
        "for f in"& filesString & "; 스크립트 수행
/ usr / local / bin / ffmpeg -i \ "$ f \"-c : v libx264 -vf yadif -pix_fmt yuv420p -crf 21-사전 설정 느린 -movflags 빠른 시작 -c : a 사본 $ {f %. *} _ h264_yadif. mov
끝난"
    말하다
    리턴 입력
최종 실행

Automator에서 “AppleScript 실행”액션을 생성하여 붙여 넣습니다.


답변

훌륭하고 깨끗한 해결책은 알림 센터를 통해 메시지를 표시하는 것입니다.
스크립트에서 다음 터미널 명령을 실행하십시오.

osascript -e 'display notification "All files converted" with title "ffmpeg converter"'

‘osascript’명령은 터미널에서 모든 AppleScript를 실행하며 ‘display notification’은 좋은 알림을 표시합니다.


또한 ‘디스플레이 알림’을 사용할 수 있습니다. 메시지 길이에 제한이 없으며 OK버튼을 쉽게 추가 할 수 있습니다.

osascript -e 'set alertResult to display alert "Bad news :( Error converting your video file." buttons {"OK"} as warning'

다음 은 Apple Script 명령 참조입니다. 자세한 내용은 ‘디스플레이 알림’및 ‘디스플레이 알림’을 찾으십시오.


답변

다음은 내가 작업 한 간단한 솔루션이며 완료되면 명령 출력을 보여줍니다.

  1. 쉘 스크립트 실행 조치 의 출력 을 변수 값 설정으로 전달
  2. 예를 들어 알림을 표시하려면 해당 변수를 사용하십시오.

예를 들어, test.pyPython 스크립트를 사용하면 전달 된 인수 ( “…로 스크립트 실행 …”)를 인쇄하기 만하면됩니다. 스크립트를 실행하면 완료 후 다음과 같이 표시됩니다.