我有一个自制的脚本,可以截取屏幕截图并将其上传到 puush,我已将脚本放在 /usr/bin 中。如果我打开终端并输入脚本的名称,它就会完美运行。我使用 Debian Unstable(Sid) 和 Gnome3。
我想要做的是将脚本放在键盘快捷键上,或者至少在不打开终端的情况下运行它。我尝试使用 Alt+F2 打开命令提示符,但出于某种原因,即使我尝试以这种方式调用它,我的脚本也无法运行。如果我将脚本放在键盘快捷键上,情况也是如此。
我还查看了文件的权限,每个人都可以读取或运行该脚本,并且它归 root 所有并属于 root 组,就像其他程序一样。
目标是使用键盘快捷键运行自制脚本,如果键盘快捷键不起作用,则使用命令提示符作为辅助选项。但我不知道该怎么做。
迄今已测试的内容:
使用完整路径运行脚本。
打开 gnome-terminal 并将脚本作为参数传递“gnome-terminal -e script”,
在脚本开头添加 #!/bin/bash
答案1
Alt+F2 打开的命令提示符不一定$PATH
与在终端中执行的登录 shell 相同。
你可以通过以下方式看到$PATH
它的价值gnome-shell
strings /proc/`pidof gnome-shell`/environ | grep PATH
如果/usr/bin
不在该列表中,则需要修改~/.profile
以包含/usr/bin
在 $PATH 中:
PATH="/usr/bin:$PATH"
另一个问题是 Alt+F2 无法启动bash
或其他 shell。解决这个问题的方法是使用 Alt+F2 通过它启动gnome-terminal
并运行脚本。因此,按下 Alt+F2 后,输入
gnome-terminal -e my-script.sh
这会产生不良的副作用,即弹出一个gnome-terminal
窗口,该窗口将在执行脚本后关闭。
答案2
问题解决了。显然我在 #!/bin/bash 上缩进了,我删除了它以确保 # 之前没有空格、换行符或类似的东西。脚本现在从 Alt+F2 运行,也可以从键盘快捷键运行,尽管响应时间有点差,而且不是每次我点击时都运行。
感谢@FSMaxB 让我了解有关此事的更多细节,也感谢 tbekolay 提供的一些实用建议。