Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在bash脚本中的两个命令之间切换?_Linux_Bash_Shell - Fatal编程技术网

Linux 在bash脚本中的两个命令之间切换?

Linux 在bash脚本中的两个命令之间切换?,linux,bash,shell,Linux,Bash,Shell,我想用一个简单的bash脚本来打开/关闭笔记本电脑的触摸板。我知道我可以用 synclient Touchpadoff=1 要关闭触摸板并使用 synclient-Touchpadoff=0 打开它。但是有没有办法在这两个命令之间切换(即,如果触摸板关闭,则打开触摸板,反之亦然) 谢谢 不是很好,但易于实现的解决方案是保存在/tmp/touch.state触摸板的实际状态中。 如果是“0”-启用触摸板并将“1”存储在文件中,反之亦然执行synclient-l,您可以看到该行 Touchp

我想用一个简单的bash脚本来打开/关闭笔记本电脑的触摸板。我知道我可以用
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($3)}')

awk
命令将打印第三个字段的“反面”(
=
是第二个),因此如果它是1,它将打印0,如果它是0,它将打印1。

围绕
案例${tp_off:=0}的函数包装器在1)tp_off=0;;0)tp_off=1;;以撒;SyncClient Touchpadoff=${tp_off}
可能会有所帮助。祝你好运。你可以创建一个环境变量来检查状态。它非常好。我的计算机上没有SyncClient,所以我不知道-l仅返回键或具有值的键。:)不要认为您需要
strotnum
。啊,我不知道
synclient-l
。我对awk一无所知,但它说,
awk:line 2:function strotnum从未定义过
。无论如何,我最终还是用OCaml编写了自己的脚本。