我可以用快捷键切换脚本吗?

我可以用快捷键切换脚本吗?

我的桌面上有一个名为 的 bash 脚本script.sh

目前,如果我想执行它,我会打开一个终端并输入./script.sh,如果我想停止它,我必须按Ctrl+C

我想要做的是将脚本绑定到一个键,比如说7,如果脚本处于关闭状态,我按下7,它就会打开,如果它已经打开,我按下7,它就会关闭。

我已经知道如何将其绑定到键盘快捷键中以将其打开,但问题是再次按下快捷键只会创建脚本的另一个实例,这不是我想要的。

答案1

假设您的脚本是可执行的,您可以使用下面的小脚本轻松切换脚本:

#!/bin/bash

scriptpath='/full/path/to/script'

if ! pgrep -f "$scriptpath"
then
    nohup "$scriptpath" &
else
    pkill -f "$scriptpath"
fi

使用

  1. 将代码复制到一个空文件中,并将其保存为toggle_scrip.sh
  2. 在行中scriptpath='/full/path/to/script',输入脚本的完整路径(单引号之间)。
  3. 使其可执行并从快捷方式运行它。

如果您需要控制多个脚本,请将路径作为上述代码片段的参数。

答案2

我认为通过键绑定来以这种方式切换是不可能的。

但是,有一种选择(有点儿像 hack,但确实有效)是修改脚本,以便它能够检测到正在运行的另一个实例。这样,当您通过键绑定启动第二个脚本时,您可以发出 pkill 或类似命令,以终止脚本的第二个和第一个实例。

相关内容