2017-11-02 7 views
1

diff은 macOS Sierra에서 diff3이 지원하지 않는 옵션을 지원합니다. 예를 들어 diff은 공백 변경을 무시하는 -b 옵션을 지원하지만 diff3은 지원하지 않습니다.diff3을 사용할 때 diff 명령에 옵션을 전달하는 방법

그러나 diff3은 원하는 옵션으로 diff을 호출 할 프로그램을 전달하는 데 사용할 수있는 --diff-program 옵션을 지원합니다. 이와 같이

, 나는 프로그램이 같은 mydiff을 만들어 :

diff -b $1 $2 

하지만 명령 행에 diff3 --diff-program=./mydiff left.txt base.txt right.txt를 실행할 때, 나는 다음과 같은 오류 있어요 :

diff: missing operand after `--' 
diff: Try `diff --help' for more information. 
diff3: subsidiary program `./mydiff' failed 

방법이가 해결 될 수 있습니까?

mydiff을 생성하지 않고 어떻게하면 --diff-program=...을 설정하여 명령 줄에서 직접 옵션을 전달할 수 있습니까?

감사

답변

1

문제는 diff3 이러한 매개 변수로 지정된 diff 명령을 호출하는 것입니다 : --horizon-lines=100 -- F1 F2F1F2 파일의 매개 변수입니다. 당신이 이것을 실행하면

diff -b --horizon-lines=100 -- 

, 당신은 같은 오류를 얻을 : 방법은 당신이 diff3 --diff-program=./mydiff left.txt base.txt right.txt을 실행할 때이 실행 얻을 것이다, mydiff을 썼다.

올바른 방법 mydiff 쓰기 :

#!/bin/sh 

diff -b "[email protected]" 

그리고 아니, 불행하게도, 어떻게 든 인라인 당신이 diff3와 함께 작동하도록 전용 스크립트를 작성해야 을 diff -b을 쓸 수있는 방법은 없습니다.