我的桌面上有一个名为 的 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
使用
- 将代码复制到一个空文件中,并将其保存为
toggle_scrip.sh
- 在行中
scriptpath='/full/path/to/script'
,输入脚本的完整路径(单引号之间)。 - 使其可执行并从快捷方式运行它。
如果您需要控制多个脚本,请将路径作为上述代码片段的参数。
答案2
我认为通过键绑定来以这种方式切换是不可能的。
但是,有一种选择(有点儿像 hack,但确实有效)是修改脚本,以便它能够检测到正在运行的另一个实例。这样,当您通过键绑定启动第二个脚本时,您可以发出 pkill 或类似命令,以终止脚本的第二个和第一个实例。