2011-05-11 3 views
0

Beyond Compare은 두 개의 노틸러스 스크립트 (/home/user/.gnome2/nautilus-scripts에 저장 됨)를 사용하여 "비교 대상 선택"및 "비교 대상 선택"을 제공합니다.Meld Nautilus 컨텍스트 메뉴 용 쉘 스크립트

스크립트 1 : 나는 Meld 비슷한 스크립트를 수행하려고

#!/bin/sh 
arg2=$(cat $HOME/.beyondcompare/nautilus) 
arg1=$(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | awk 'BEGIN { FS = "\n" } { printf "\"%s\" ", $1 }' | sed -e s#\"\"##) 
bcompare $arg1 $arg2 

선정에 비교하지만 작동하지 않습니다 :

#!/bin/sh 
quoted=$(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | awk 'BEGIN { FS = "\n" } { printf "\"%s\" ", $1 }' | sed -e s#\"\"##) 
echo "$quoted" > $HOME/.beyondcompare/nautilus 

스크립트 (2) 비교를 위해 선택합니다.

쉘 스크립트에 익숙하지 않습니다. 아무도 나를 이해하는 데 도움이 될 수 있습니다 :

quoted=$(echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | awk 'BEGIN { FS = "\n" } { printf "\"%s\" ", $1 }' | sed -e s#\"\"##) 

그래서 나는 meld에 적응할 수 있습니다.

+0

쉘 스크립트를 사용하는 것이 반드시 필요한 경우가 아니라면 다음을 사용할 수 있습니다. http://my.opera.com/bachkhois/blog/2011/07/19/compare-files-with-meld-from-within- 노틸러스 파이썬으로 작성된 노틸러스 플러그인입니다. – hongquan

답변

1

따옴표 붙은 = $ (...)은 인용 부호가 붙은 변수에 어떤 출력이 있는지를 지정하며, 나중에 스크립트에서 $ quoted OR $ {quoted} OR "$ {quoted}"OR "$ quoted "

'|' char는 unix/linux에서 'pipe'라고 불리며 이전 명령의 출력을 연결하여 다음 명령을 입력합니다.

그래서 당신은 한 번에 스크립트를 분리 한 조각을하고 무엇을 참조

quoted=$(
# I would execute below by itself first 
echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" 
# then add on this piped program to see how data gets transformed 
| awk 'BEGIN { FS = "\n" } { printf "\"%s\" ", $1 }' 
# then add this 
| sed -e s#\"\"## 
# the capturing of the output to the var 'quoted' is the final step of code 
) 

# you **cannot** copy paste this whole block of code and expect it to work ;-) 

나는 $ NAUTILUS_SCRIPT_SELECTED_FILE_PATHS에 있어야하는데 모르는을, 그래서 당신을 보여주기 어렵다 이리. 그리고 그 변수는 여기서 지정한 코드 중 하나에 정의되어 있지 않으므로, echo 값만 공백 라인을 얻을 수 있습니다. 그 가치가 어떻게 설정되고 올바른 값이 무엇인지에 대한 연구를 할 준비를하십시오.

또한 코드에 #!/bin/sh이라는 접두사가 붙어있는 것을 확인했습니다. 정말로/bin/sh이면 quoted=$(....)과 같은 명령 대체가 작동하지 않으며 오류 메시지가 생성됩니다. 아마도 여러분의 시스템은 실제로/bin/sh에 대해 bash를 사용하고 있습니다. 'shebang'을 #! /bin/bash으로 변경하여 앞으로 발생할 수있는 혼란을 제거 할 수 있습니다 (/ bin/sh = bourne shell이있는 시스템으로 변경할 때).

이 정보가 도움이되기를 바랍니다.

2

배우기 위해 자신 만의 솔루션을 사용하고 싶지 않다면 diff-ext 연장을 노틸러스에 설치하는 것이 좋습니다. 그것은 크로스 플랫폼이며 데비안/우분투를 설치하는 경우에는 sudo apt-get install diff-ext과 같이 간단해야합니다.

여기에 체크 아웃 스크린 샷을 - http://diff-ext.sourceforge.net/screenshots.shtml

0

난 그냥, 훌륭한이 게시물에 대한 DIFF-EXT 감사를 발견!

첫 번째 시도가 실패했습니다. 기본적으로 diff-ext는 백업 파일 (* ~ 및 * .bak)을 처리하지 않습니다.

$ diff-ext-setup 

을하고 Mime types 창에서 application/x-trash를 확인이 가능하려면 실행합니다.

이제 파일과 백업을 비교할 수 있습니다.