Shellscript:Pmset值作为else if脚本中的变量

时间:2018-10-18 23:22:36

标签: macos shell hibernation hibernate-mode

我正在尝试编写一个shell脚本,该脚本将在Mac上将休眠模式从3更改为25,反之亦然。我尝试将“ pmset -g | grep hibernatemode”命令的结果设置为OUTPUT变量(根据电源,其结果为“ hibernatemode 3”或“ hibernatemode 25”),并将HIBERNATE变量设置为“ hibernatemode 3” ”。因此,如果变量OUTPUT和HIBERNATE匹配,我希望它执行将更改该系统设置的命令,但是现在我只希望它使用echo命令显示它正在使用哪个命令。问题是无论我做什么,而无论OUTPUT的值是多少,我都会得到“休眠模式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

1 个答案:

答案 0 :(得分:0)

好,我知道了。问题在于shell命令的输出具有TAB而不是SPACE。我直接从终端运行命令来复制输出。如果有人需要,可运行的shellscript如下所示:

sample.tab.cpp