首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找上一次打开应用程序。检查是否超过30天

问查找上一次打开应用程序。检查是否超过30天
EN

Stack Overflow用户
提问于 2016-10-04 22:25:30
回答 2查看 175关注 0票数 0

我正在编写一个脚本,它告诉我上一次(在Mac上)某个应用程序何时被打开,然后看看它是否超过了一个月。

我可以通过在Mac上使用“mdls”来找出多久前的情况。然后我能找到一个月前的日期,但是现在我有点纠结于如何写IF语句。

代码语言:javascript
复制
#!/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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-04 23:19:36

考虑一下这个bash函数,它将将YYYY DD日期转换为一个时间戳(它将保持一天中的当前时间):

代码语言:javascript
复制
date_to_timestamp() { date -j -f '%Y-%m-%d' "$1" '+%s'; }

然后,您可以转换您的2个值并比较它们:

代码语言:javascript
复制
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
票数 1
EN

Stack Overflow用户

发布于 2016-10-04 22:57:38

也许你可以..。

代码语言:javascript
复制
[[ $(( $(date -d"$outlook_last_opened" +%s) - $(date -d"$last_month_day" +%s) )) -gt 0 ]]

但我不知道..。我使用的是GNU/Linux,而不是OSX

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39862701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档