2016-08-27 3 views
0

나는 어디에서나 보았고 내 상황에 적용되는 것을 찾지 못했지만 실수를 저지르고있는 곳을 이해할 수는 없습니다.Bash exec이 종료 값을 찾지 못함

find: -exec: no terminating ";" or "+"

on run {input, parameters} 

tell application "Terminal" 
    activate 
    set filesString to "" 
    repeat with file_ in input 
     set filesString to filesString & " " & quoted form of (POSIX path of file_) 
    end repeat 
    {} 
    do script "MOVIES=/Volumes/MEDIA/Video; 
find \"$MOVIES\" -name '*.mkv' -exec sh -c 'ffmpeg -i \"$0\" -vcodec copy -acodec copy \"${0%%.mkv}.mp4\" ' ; " 

    end tell 
    return input 
end run 

I가하려고 해요 : 난 그냥 문제가 어디 있는지 찾을 수가 없습니다 전에이 대답 한 경우 나는

내 코드는 오류를 던지고있다 .. 미리 사과 자동화 프로세스를 단순화하기 위해 자동화를 사용하십시오. 다행히도 해결책이 너무 복잡하지 않기를 바랍니다.

업데이트 : 이전 문제를 해결 한 것 같다하지만 지금은

sh: No such file or directory

코드는 아래의 터미널에서 혼자 작동하지만 자동화를 통해 던지고 : 당신은 탈출해야

MOVIES=/Volumes/MEDIA/Video 
find "$MOVIES" -name '*.mkv' -exec sh -c 'ffmpeg -i "$0" -vcodec copy -acodec copy "${0%%.mkv}.mp4"' {} \; 

답변

1

을 의 끝 부분에있는 ; (\ 더블 때문에 당신의 따옴표)를 찾을 수

do script "MOVIES=/Volumes/MEDIA/Video; 
find \"$MOVIES\" -name '*.mkv' -exec sh -c 'ffmpeg -i \"$0\" -vcodec copy -acodec copy \"${0%%.mkv}.mp4\" ' \\; " 
+0

완벽하지만 고정되어있는 것처럼 보이지만 어떤 이유로 든 존재하는 디렉토리를 찾지 못하는 것입니다 ... 아래 코드는 터미널에서 단독으로 작동하지만 자동화를 통해서는 작동하지 않습니다 : MOVIES =/Volumes/MEDIA/Video \ n find " $ MOVIES "-name"* .mkv '-exec sh -c'ffmpeg -i "$ 0"-vcodec 복사 -acodec copy "$ {0 %%. mkv} .mp4" '{} \;' – TeddyCode