我该如何解决这个bash问题?

我试图将xinput设置为在启动时运行以切换一些鼠标按钮function。 但问题是它显然不起作用。

我想离开这个:

xinput set-button-map 8 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 

要么

 xinput set-button-map "Logitech USB-PS/2 Optical Mouse" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 

对此:

 xinput set-button-map 8 1 2 3 4 5 2 2 2 2 2 2 2 2 2 2 2 

要么

 xinput set-button-map "Logitech USB-PS/2 Optical Mouse" 1 2 3 4 5 2 2 2 2 2 2 2 2 2 2 2 

我在一个文本文件中写了这个:

 #!/bin/bash -e $xinput set-button-map "Logitech USB-PS/2 Optical Mouse" 1 2 3 4 5 2 2 2 2 2 2 2 2 2 2 2 

如果我直接运行xinput命令,即使我使用ID而不是名称,它也能很好地工作。 如果我运行该文件然后它告诉我“set-button-map:command not found”。

我究竟做错了什么?

使用

 xinput set-button-map "Logitech USB-PS/2 Optical Mouse" 1 2 3 4 5 2 2 2 2 2 2 2 2 2 2 2 

代替

 $xinput set-button-map "Logitech USB-PS/2 Optical Mouse" 1 2 3 4 5 2 2 2 2 2 2 2 2 2 2 2 

使用$xinput您尝试使用不存在的环境变量xinput ,因此只会被忽略。 所以Bash实际上试图运行

 set-button-map "Logitech USB-PS/2 Optical Mouse" 1 2 3 4 5 2 2 2 2 2 2 2 2 2 2 

由于命令set-button-map不存在,您将收到错误。