Nemo 自訂操作(.sh 腳本)不執行

Nemo 自訂操作(.sh 腳本)不執行

我創建了一個 .sh 腳本,用於對使用 Shutter 製作的螢幕截圖進行簡單的 OCR 處理。該腳本如下所示 ( 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

該腳本執行一些使用超立方體進行 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 視窗執行該操作。

相關內容