这可能非常简单,但我对此还不太熟悉,不知道自己在做什么。很简单,我有 MouseON.sh,当它运行时,我希望它打开一个终端,运行一个命令,然后关闭它打开的终端。(是的,我知道这似乎是多余的,但就我的目的而言,这是我需要的)。我已经在 Google 上搜索过并浏览过这个网站,但由于新手,我真的找不到我能理解的东西。
我有:
#!/bin/sh
gnome terminal -x sh -c xinput set-prop 10 "Device Enabled" 0
它能很好地打开和关闭终端,但实际上并没有运行“xinput set-prop 10“Device Enabled”0”
有什么建议吗?
另外,是的,我知道它被称为“MouseON”,将其设置为 0 会关闭鼠标,我已将其设置为该值以进行测试。
我也知道还有其他方法可以打开和关闭鼠标但就我的目的而言,这就是我所需要的。
提前致谢。
答案1
从man gnome-terminal
:
-x, --execute
Execute the remainder of the command line inside the termi‐
nal.
当sh -c xinput set-prop 10 "Device Enabled" 0
对 进行评估以便执行时,sh
被解释为要运行的可执行文件,并且 的参数用sh
空格分隔;因此xinput
被解释为选项sh
的参数,并且 、和被解释为 的选项/参数,而不是 的选项/参数。-c
set-prop
10
Device Enabled
0
sh
xinput
解决方案是xinput
使用单/双引号引用命令,以防止命令在空格上被分割,并使其sh
作为选项的整体参数被解释-c
:
gnome terminal -x sh -c 'xinput set-prop 10 "Device Enabled" 0'
或者
gnome terminal -x sh -c "xinput set-prop 10 \"Device Enabled\" 0"