我正在尝试编写一个脚本,告诉我上次打开特定应用程序(在Mac OSX上)的时间,然后查看它是否超过1个月。
我可以在Mac上使用'mdls'找到多久前。然后我能够找到1个月前的日期,但现在我对如何编写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
答案 0 :(得分:1)
也许你可以......
[[ $(( $(date -d"$outlook_last_opened" +%s) - $(date -d"$last_month_day" +%s) )) -gt 0 ]]
但我不知道......我使用的是GNU / Linux,而不是OSX
答案 1 :(得分:1)
考虑这个bash函数,它会将YYYY-MM-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