Пользовательское действие Nemo (скрипт .sh) не выполняется

Я создал скрипт .sh для простого распознавания скриншотов, который я делаю с помощью Shutter. Сценарий выглядит следующим образом (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. Это делает работу правильно, если она вызывается из терминала. Я хотел сделать весь процесс в Nemo, поэтому я создал пользовательское действие с именем OCR.nemo_action внутри /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.

Пожалуйста, помогите!

3
задан 11 February 2014 в 21:29

3 ответа

Отлично !!

- ~ / 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 находится на моем рабочем столе !!!

0
ответ дан 11 February 2014 в 21:29

Я как бы пришел к решению этой ситуации в Корице. Файл .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-скрипт, который состоит из терминальных команд , не выполняется «где-то в фоновом режиме». В сценариях bash, которые вызывают приложения с графическим интерфейсом, директива Exec= Gnome3 допускает значение <script.sh %F>.

0
ответ дан 11 February 2014 в 21:29

Это скрипт 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, которое откроется.

0
ответ дан 11 February 2014 в 21:29

Другие вопросы по тегам:

Похожие вопросы: