【问题标题】:Invoking bash script via KB shortcut in KDE won't run all commands from the script通过 KDE 中的 KB 快捷方式调用 bash 脚本不会运行脚本中的所有命令
【发布时间】:2021-07-04 20:19:59
【问题描述】:

我是 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 中设置键盘快捷键?
  • 我的代码是完全没有意义的垃圾吗?

任何帮助表示赞赏:)

【问题讨论】:

    标签: linux bash shell scripting kde


    【解决方案1】:

    使用xclip 代替xsel 解决了问题

    #!/usr/bin/env bash
    
    if [ $(pidof espeak) ]; then
        killall espeak;
    else
        espeak "$(xclip -selection primary -o)";
    fi
    

    【讨论】:

      猜你喜欢
      • 2014-03-01
      • 2021-03-20
      • 2011-02-20
      • 2019-02-22
      • 2017-02-21
      • 2017-07-24
      • 2017-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多