在 bash 脚本中的两个命令之间切换?
Toggle between two commands in bash script?
我想使用一个简单的 bash 脚本来切换 on/off 我笔记本电脑的触摸板。我知道我可以使用
synclient Touchpadoff=1
关闭触摸板并使用
synclient Touchpadoff=0
打开它。但是有什么方法可以在这两个命令之间切换(即,如果触摸板关闭,然后打开它,反之亦然)?
谢谢!
不是很好,但很容易实现的解决方案是保存在 /tmp/touch.state 触摸板的实际状态。
如果它是“0”——启用触摸板并在文件中存储“1”,反之亦然
做synclient -l
,可以看到行
TouchpadOff = 0
(或=1)
然后你只需要grep这个值并用另一个值调用synclient Touchpadoff=
。
例如在一个脚本 toggleTouchpad.sh
中,你可以有
#!/bin/bash
synclient TouchpadOff=$(synclient -l | awk '/TouchpadOff/{print !strtonum()}')
awk
命令将打印第三个字段的"opposite"(=
是第二个),所以如果是1就打印0,如果是0就打印1.
我想使用一个简单的 bash 脚本来切换 on/off 我笔记本电脑的触摸板。我知道我可以使用
synclient Touchpadoff=1
关闭触摸板并使用
synclient Touchpadoff=0
打开它。但是有什么方法可以在这两个命令之间切换(即,如果触摸板关闭,然后打开它,反之亦然)?
谢谢!
不是很好,但很容易实现的解决方案是保存在 /tmp/touch.state 触摸板的实际状态。
如果它是“0”——启用触摸板并在文件中存储“1”,反之亦然
做synclient -l
,可以看到行
TouchpadOff = 0
(或=1)
然后你只需要grep这个值并用另一个值调用synclient Touchpadoff=
。
例如在一个脚本 toggleTouchpad.sh
中,你可以有
#!/bin/bash
synclient TouchpadOff=$(synclient -l | awk '/TouchpadOff/{print !strtonum()}')
awk
命令将打印第三个字段的"opposite"(=
是第二个),所以如果是1就打印0,如果是0就打印1.