0

我必须报告上次使用 AWS 密钥的时间。我正在为这个脚本使用 bash。如果未使用密钥,则值为“null”,我必须考虑这一点。

当我尝试使用 date 命令时,出现以下错误:

date: invalid date ‘"2018-07-13T14:49:00Z"’
date: invalid date ‘null’

这是我的代码,我试图用来打印这些值:

if [[ "$key1_last_used" = 'null' ]]; then
    key1_last_used="key was never used."
   else
     key1_last_used=$(date --date $key1_last_used_date "+%B %d %Y")
   fi

如果我使用此命令确定密钥的年龄:

aws iam  get-access-key-last-used --access-key-id AKIAISEHPFM2DRIMIXXQ  --profile=nonprod  | jq '.AccessKeyLastUsed.LastUsedDate'

并得到这个回复:

"2018-07-13T14:57:00Z"

然后代码运行此日期命令:

date --date '"2018-07-13T15:01:00Z"' '+%B %d %Y'

并产生这个结果:

date: invalid date ‘"2018-07-13T15:01:00Z"’

如果我遇到一个未使用的密钥:

aws iam get-access-key-last-used --access-key-id AKIAIDZ7X4JCS5ANNXGQ --profile=nonprod | jq '.AccessKeyLastUsed.LastUsedDate'

我得到这个回复:

null

运行 date 命令时,null 被视为无效输入:

date --date null '+%B %d %Y'
date: invalid date ‘null’

我不知道为什么日期打印不正确。这些额外的报价来自哪里?而且我不知道为什么 if /then 无法识别空输出。

4

2 回答 2

1

您可以使用jq -r来获取不带引号的字符串。

于 2018-07-13T16:12:04.547 回答
0

尝试使用

key1_last_used="Null"

下面的作品

echo $(date "+%B %d %Y" ) $key1_last_used
于 2018-07-13T18:49:46.627 回答