【发布时间】:2019-03-23 20:15:40
【问题描述】:
我正在尝试编写一个 shellscript,它将在 Mac 上将休眠模式从 3 更改为 25,反之亦然。我尝试将“pmset -g | grep hibernatemode”命令的结果设置为 OUTPUT 变量(根据电源给出“hibernatemode 3”或“hibernatemode 25”结果)并将 HIBERNATE 变量设置为“hibernatemode 3 ”。因此,如果变量 OUTPUT 和 HIBERNATE 匹配,我希望它执行一个命令,该命令将更改该系统设置,但现在我只希望它使用 echo 命令显示它正在使用的命令。问题是无论我做什么,无论 OUTPUT 的值是什么,我都会得到“hibernatemode 25”。我对此真的很陌生,所以我可能缺少一个非常基本的东西。感谢您的帮助!
#!/bin/bash
OUTPUT="$(pmset -g | grep hibernatemode)"
HIBERNATE="hibernatemode 3"
echo $OUTPUT
echo $HIBERNATE
if [ $OUTPUT = $HIBERNATE ]
then
echo hibernatemode is 3
else
echo hibernatemode is 25
fi
【问题讨论】:
-
您需要对所有变量值进行双引号引用,尤其是
if [ "$OUTPUT" = "$HIBERNATE" ]。而且我很惊讶您没有收到错误消息。而且我建议添加else echo "unknown value for hibmode=$OUTPUT" ; fi。祝你好运。
标签: macos shell hibernation hibernate-mode