dot*_*ose 1 shell-script touchpad
我已经编写了这个脚本来切换我的触摸板(我将对其进行键绑定),但它不起作用。为什么这段代码不起作用?我怎样才能更优雅地完成这个功能?
#!/bin/sh
if [ "synclient | grep TouchpadOff | grep -o -E '[0-9]+'" ]
then
synclient TouchpadOff=0
notify-send "Touchpad Enabled"
else
synclient TouchpadOff=1
notify-send "Touchpad Disabled"
fi
Run Code Online (Sandbox Code Playgroud)
当你写
if [ "some string or other" ]
then
Run Code Online (Sandbox Code Playgroud)
该[运营商不运行some string or other,它只是看到一个非空字符串,并说这是一个true值。
你要
if [ "`synclient | grep TouchpadOff | grep -o -E '[0-9]+'`" ]
Run Code Online (Sandbox Code Playgroud)
或者更现代的
if [ "$(synclient | grep TouchpadOff | grep -o -E '[0-9]+')" ]
Run Code Online (Sandbox Code Playgroud)
但实际上没有必要查看命令是否生成字符串,因为 grep 会生成退出代码,因此
if synclient | grep TouchpadOff | grep -q -E '[0-9]+'
then
Run Code Online (Sandbox Code Playgroud)
应该做你想做的。我不知道 synclient 的输出格式,但我希望您可以毫不费力地将两个 grep 合二为一。