我正在尝试编写一个命令来查看我的电池状态,并在电池电量不足时暂停笔记本电脑。我尝试使用这样的东西:
#!/bin/bash
if [ $(acpi -b | cut -c 25) < 11 ]
then notify-send "Hello"
fi
这可行,但由于某种原因,如果我用一位数(如 5)替换 11,则会收到错误
battery-notify-standby: line 2: 5: No such file or directory
我还尝试用两个圆括号替换方括号,以将其指定为算术表达式。然后我得到
battery-notify-standby: line 2: ((: < 11 : syntax error: operand expected (error token is "< 11 ")
我不确定到底出了什么问题。有人可以帮我吗?
shell 中的运算符
<
是重定向运算符,而不是比较运算符。您似乎有一个名为 的文件11
,因此似乎可以读取该文件,并且可以正常工作。(但与检查输出无关 - 始终验证您的假设!)您正在寻找的比较运算符是
-lt
,而不是<
。看来您的命令
$(acpi -b | cut -c 25)
有错误。当您将 更改为 时,[ ]
错误(( ))
与您的命令产生空白相同