Nemo 사용자 정의 작업(.sh 스크립트)이 실행되지 않습니다.

Nemo 사용자 정의 작업(.sh 스크립트)이 실행되지 않습니다.

Shutter로 만든 스크린샷의 간단한 OCR을 위해 .sh 스크립트를 만들었습니다. 스크립트는 다음과 같습니다( ocrFile.sh).

#!/bin/bash

convert $1 /tmp/output.pnm
cat /tmp/output.pnm | pamstretch 4 > /tmp/stretched.pnm
convert /tmp/stretched.pnm -colorspace gray /tmp/output600dpi.tif
tesseract /tmp/output600dpi.tif ./outputText -l eng

이 스크립트는 tesseract를 사용하여 OCR할 때 필요한 일부 이미지 향상을 수행합니다. 터미널에서 호출하면 제대로 작업을 수행합니다. 내가 원하는 것은 Nemo 내에서 전체 프로세스를 수행하는 것이었기 때문에 다음 내용으로 OCR.nemo_actioninside 라는 이름의 사용자 지정 작업을 만들었습니다./home/user1/.local/share/nemo/actions

[Nemo Action]
Name=OCR The Screenshoot
Comment=OCR Function for Nemo File Manager
Exec=<ocrFile.sh %F>
Icon-Name=gtk-execute
Selection=Any
Extensions=png;

이 Nemo 작업은 위에 제공된 스크립트로 출력을 생성하지 않습니다. .sh 스크립트는 Nemo의 사용자 정의 작업 폴더에도 있습니다.

도와주세요!

답변1

엄청난!!

-- ~/OCR.sh ( chmod +x ~/OCR.sh )

#!/bin/bash
convert $1 /tmp/OCR-output.pnm
cat /tmp/OCR-output.pnm | pamstretch 4 > /tmp/OCR-stretched.pnm
convert /tmp/OCR-stretched.pnm -colorspace gray /tmp/OCR-output600dpi.tif 
tesseract /tmp/OCR-output600dpi.tif ~/Desktop/OCR-outputText -l eng 
rm /tmp/OCR-output.pnm /tmp/OCR-stretched.pnm /tmp/OCR-output600dpi.tif

-- ~/.local/share/nemo/actions

[Nemo Action]
Active=true
Name=OCR picture
Comment=OCR Function for Nemo File Manager
Selection=S
Exec=/bin/bash /home/user/OCR.sh %F                 --- change "user"
Icon-Name=gtk-execute
Extensions=png;jpg;jpeg;bmp;

그리고 OCR 텍스트가 내 데스크탑에 있습니다 !!!

답변2

나는 Cinnamon에서 이 상황에 대한 해결책을 찾았습니다. 파일 .nemo_action은 다음 내용으로 구성됩니다.

[Nemo Action]
Name=OCR The Screenshoot
Comment=OCR Function for Nemo File Manager
Selection=S
Exec=gnome-terminal --working-directory=%P -e "/media/storage/Scripts/actions/ocrFile.sh %F"
Icon-Name=gtk-execute
Extensions=png;jpg;jpeg;bmp;
Active=true

작업을 수행하기 위해 터미널을 시작하는 것이 여기서는 해결 방법입니다. 다른 모든 것들은 결과를 얻지 못하는 것 같았습니다.

Bash 스크립트 자체는 거의 동일하게 유지되었으며 명령 세트가 실행될 때까지 터미널을 열어 두라는 지시문에 대해서만 변경되었습니다.

#!/bin/bash
convert $1 /tmp/output.pnm
cat /tmp/output.pnm | pamstretch 4 > /tmp/stretched.pnm
convert /tmp/stretched.pnm -colorspace gray /tmp/output600dpi.tif 
tesseract /tmp/output600dpi.tif ./outputText -l eng 
rm /tmp/output.pnm /tmp/stretched.pnm /tmp/output600dpi.tif
bash

내가 궁극적으로 원하는 것은 이 프로세스를 완전히 터미널 없이 만드는 것입니다. 제가 보기에는 Gnome2(Mate)와 프로세스가 약간 다른 것 같습니다. 다음으로 구성된 bash 스크립트는 다음과 같습니다.터미널 명령"백그라운드 어딘가에서" 실행하지 마십시오. GUI 애플리케이션을 호출하는 bash 스크립트를 사용하면 Gnome3의 Exec=지시어가 <script.sh %F>값을 허용합니다.

답변3

Bash 스크립트인가요? 노력하다

Exec=/bin/bash /home/user1/.local/share/nemo/actionsocrFile.sh %F

(또는 /bin/sh일반적 으로 dash약간 더 빠를 수도 있습니다.)

디버깅의 경우 명령줄에서 다음을 수행합니다.

$ nemo -q # quit all instances of nemo
$ NEMO_ACTION_VERBOSE=1 nemo

그런 다음 열린 nemo 창에서 작업을 실행하십시오.

관련 정보