我正在编写一个脚本,它告诉我上一次(在Mac上)某个应用程序何时被打开,然后看看它是否超过了一个月。
我可以通过在Mac上使用“mdls”来找出多久前的情况。然后我能找到一个月前的日期,但是现在我有点纠结于如何写IF语句。
#!/bin/sh
outlook_last_opened=`mdls "/Applications/Microsoft Office 2011/Microsoft Outlook.app/Contents/MacOS/Microsoft Outlook" -name kMDItemLastUsedDate | awk '{print $3}'`
last_month_day=`date -v -1m '+%Y-%m-%d'` # Sets the date to 1 month ago
if [[ {???} ]]; then # Not sure about this
echo "Older than 1 month"
else
echo "Less than 1 month"
fi发布于 2016-10-04 23:19:36
考虑一下这个bash函数,它将将YYYY DD日期转换为一个时间戳(它将保持一天中的当前时间):
date_to_timestamp() { date -j -f '%Y-%m-%d' "$1" '+%s'; }然后,您可以转换您的2个值并比较它们:
if [ $(date_to_timestamp $outlook_last_opened) -lt $(date_to_timestamp $last_month_day) ]; then
echo "Older than 1 month"
else
echo "Less than 1 month"
fi发布于 2016-10-04 22:57:38
也许你可以..。
[[ $(( $(date -d"$outlook_last_opened" +%s) - $(date -d"$last_month_day" +%s) )) -gt 0 ]]但我不知道..。我使用的是GNU/Linux,而不是OSX
https://stackoverflow.com/questions/39862701
复制相似问题