bash-newbie在這裏。bash:比較字符串與grep-variable問題
我想用下面簡單的腳本的快捷方式啓用/禁用我的筆記本電腦的觸控板:如果條件不過是從未進入
#!/bin/bash
result=$(xinput --list-props 11 | grep "Device Enabled")
echo $result
# Output: Device Enabled (140): 1
if [[ "$result" = "Device Enabled (140): 1" ]]; then
`xinput set-prop 11 "Device Enabled" 0`
else
`xinput set-prop 11 "Device Enabled" 1`
fi
的。 echo $result
顯示該變量確實包含我想要比較的字符串值。我一直在尋找一段時間,但根本無法弄清楚爲什麼結果變量和字符串在if條件中不匹配。
請看看:http://www.shellcheck.net/ – Cyrus
用'echo「$ result」'替換'echo $ result'。變量中有兩個選項卡。 – Cyrus
你真的有條件使用'xinput'包含在後面的引號中嗎?如果你想顯示這些命令的輸出,你需要使用'echo'之類的東西來放在它們的前面。而且,因爲您已經在使用cmd替換的'$(cmd)'形式,所以對這些行也這樣做。我猜你並不需要cmd替換你的有條件使用'xinput ...',。將有興趣看看'shellcheck.net'標誌。 (是的,它的確如此)。祝你好運。 – shellter