微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 KDE 中通过 KB 快捷方式调用 bash 脚本不会运行脚本中的所有命令

如何解决在 KDE 中通过 KB 快捷方式调用 bash 脚本不会运行脚本中的所有命令

我是 bash 脚本的新手,需要帮助了解如何调试它。

这是一个 TTS 脚本,它使用 espek TTS 引擎来朗读 xsel内容 它包含用户用光标突出显示的任何内容

#!/usr/bin/env bash

if [ $(pgrep espeak) ]; then
    killall espeak;
else
    espeak "$(xsel)";
fi

当从终端 ./tts_script.sh 调用时,脚本运行良好。问题是当我尝试从我在 KDE 中设置的键盘快捷键调用它时。

我这样设置快捷方式...

  • 转到“系统设置>>快捷方式>>自定义快捷方式”
  • 选择“编辑>>新建>>全局快捷方式>>命令/URL”
  • 选择键盘触发器
  • 然后在操作选项卡下我放了 ~/scripts/tts_script.sh

我通过在顶部包含以下代码行来测试它

#!/usr/bin/env bash
espeak "hello there";

我用快捷方式调用了脚本,它确实说“你好”,但就是这样。 我能够确定,当从快捷方式调用脚本时,它会在遇到与 xsel 相关的任何事情时失败。

  • 我可以查看任何调试日志吗?
  • 是否有其他方法可以调用脚本?
  • 是否有其他方法可以在 KDE 中设置键盘快捷键?
  • 我的代码是完全没有意义的垃圾吗?

感谢任何帮助:)

解决方法

使用 xclip 而不是 xsel 解决了问题

#!/usr/bin/env bash

if [ $(pidof espeak) ]; then
    killall espeak;
else
    espeak "$(xclip -selection primary -o)";
fi

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。