尝试使用GREP查找一些信息。评估信息。然后执行功能。
我拥有的,任何帮助都将受到赞赏。
修复到:
#! /bin/bash
UT=$(/usr/sbin/system_profiler SPSoftwareDataType | grep "Time since boot" | grep "days")
if [ "$UT" -ge "5 days" ]; then
echo this
else
echo that
fi
spsoftwaredatate看起来像这样: 系统软件概述:
System Version: OS X 10.9.5
Kernel Version: Darwin 13.4.0
Boot Volume: Macintosh HD
Boot Mode: Normal
Computer Name: xxxxxxxxxxxx
User Name: xxxxxxxxxx (xxxxxxxxxx)
Secure Virtual Memory: Enabled
Time since boot: 8 days 3:25
尝试使用sysctl
#! /bin/bash
UT=$(awk -F":" ' $4 > 200 ' sysctl -n kern.boottime)
echo $UT
if [ “$UT” -ge “1430315296” ]; then
echo this
else
echo that
fi
我看不到您期望 awk
与其他任何东西中指定的任何内容进行比较...我也不知道为什么您会选择解析system_profiler
输出。
您是否考虑过:
sysctl -n kern.boottime
{ sec = 1431023230, usec = 0 } Thu May 7 19:27:10 201
哪个将在几秒钟内给出启动时间,因为这只是一个简单的整数,您可以与其他时间进行比较?
所以,您可以像这样的几秒钟
解析UT=$(sysctl -n kern.boottime | awk -F"[ ,]+" '{print $4}')
-F"[ ,]+"
说要将多个空间或逗号视为场分离器。
您可以在awk
awk '/Time since boot.*days/ {print ($4>5?"This":"That")}' file
This
awk '/Time since boot.*days/ {print ($4>8?"This":"That")}' file
That
编辑:
#!/bin/bash
/usr/sbin/system_profiler SPSoftwareDataType | awk '/Time since boot.*days/ {print ($4>8?"This":"That")}'