输出uname -a
:Linux negosaki 5.11.0-46-lowlatency #51~20.04.1-Ubuntu SMP PREEMPT Fri Jan 7 08:04:34 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
~/bin/flameshot-ocr
我在我的路径中有以下脚本:
#!/usr/bin/env bash
function ocr() {
filename=$1
lang=$2
outfile="/tmp/tesseract-output"
tesseract "$1" $outfile -l "$2"
cat "$outfile".txt
}
save_path="/tmp/flameshot-screenshot.png"
lang=$1
flameshot gui -r > "$save_path"
output=$(ocr "$save_path" "$lang")
echo "$output"
echo "$output" | xclip -selection clipboard
yomichan-search
exit 0
该yomichan-search
命令只是我路径中的另一个命令,它用于xdotool
使我使用的程序处于焦点状态。基本上,脚本使用flameshot
提示我输入裁剪的屏幕截图,然后将该屏幕截图保存到/tmp/flameshot-screenshot.png
,然后使用 tesseract 和提供的语言选项对图像执行 ocr,并将结果保存在中/tmp/tesseract-output.txt
。然后,我使用 xclip 将此输出复制到我的系统剪贴板。当我从我的终端运行脚本时,这一切都有效,例如flameshot-ocr jpn_vert
。但是,当我使用键盘快捷键(命令)运行它时flameshot-ocr jpn_vert
,只有部分脚本运行:我被提示截取屏幕截图,屏幕截图被保存,tesseract 在其上运行,但输出没有复制到我的剪贴板(xclip 失败),我的yomichan-search
脚本没有运行。作为参考,这是我的yomichan-search
脚本:
#!/usr/bin/env bash
if [[ $(xdotool search yomichan) ]]; then
xdotool search yomichan windowactivate
else
/opt/google/chrome/google-chrome --profile-directory=Default --app-id=dmlhnpobnomcmidkoijomppdlpfkedmi
fi
我已经验证了echo "hello | xclip -selection clipboard"
当我从我的终端运行一个简单的命令时它可以工作,但是从键盘快捷键运行它则不行,并且我已经尝试
sh -c 'echo "hello" | xclip -selection clipboard'
使用键盘快捷键,它确实有效,但是键盘快捷键所做的sh -c 'flameshot-ocr jpn_vert'
与我没有将它包装起来时所做的完全相同sh -c
。
有谁知道如何解决这一问题?
答案1
我可以通过改变这些脚本的绝对路径来解决这个xclip
问题yomichan-search
。