我有这个脚本/home/username/
我可以使用以下代码通过终端运行它
./script.sh
或者
sh script.sh
它有效(它具有可执行权限)
但我无法将其分配给键盘快捷键。我正在使用键盘快捷键的“自定义快捷键”选项卡添加快捷键。也尝试使用 xbindkeys。
我到目前为止尝试过的是(将它们添加到快捷键命令中)
bash "/script.sh"
bash "./script.sh"
bash "home/username/script.sh"
home/username/script.sh
sh "/script.sh"
"/script.sh"
/script.sh
gnome-terminal "/home/username/script.sh
还有很多我记不清了。
有人能说出问题所在吗?
答案1
要将脚本添加到键盘快捷键:
- 除非脚本位于
$PATH
(如~/bin
),使用完整路径对于脚本,不要使用~
或相对路径。 如果使用完整路径,请(一如既往)以斜杠开头,例如:
sh /home/username/script.sh
你的例子不是:)
如果你的脚本是可执行的,只是完整路径即可:
/home/username/script.sh
如果不是,请使用前面的语言,例如:
sh /home/username/script.sh
您的例子中的问题是什么
在您展示的尝试中,您要么使用了错误的路径(home/some_dir
没有开始斜杠,则不是有效目录),要么使用了与预期不同的路径(指/script.sh
的是根目录),要么使用了相对路径。它们都无法通过快捷键起作用。
顺便说一下,同样的规则也适用于启动应用程序。
编辑
本案中还有一个问题:
你的具体情况;使用xdotool
脚本中的命令
从评论中,我们发现您运行的脚本使用命令xdotool
,按下按键:
#!/bin/bash
xdotool keydown Super key w
sleep 0.5
xdotool keyup Super
虚拟按键从快捷键组合几乎总是会导致按键冲突,因为你按下的键身体上按下,将与您按下的几乎按。
该怎么办
避免此问题的一种方法是让手指有时间“离开”按键,以避免真实按键与虚拟按键组合。即使这样,您也需要在按下快捷键后释放它们。然后脚本变为:
#!/bin/bash
# here we add a little break to give your fingers
# the opportunity to release the keys
sleep 0.5
xdotool keydown Super key w
sleep 0.5
xdotool keyup Super
笔记
如果问题仍然存在,请增加第 4 行的时间(并且只短暂按下快捷键)