使用 xclip 的脚本无法通过键盘快捷键运行

使用 xclip 的脚本无法通过键盘快捷键运行

输出uname -aLinux 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

相关内容