我必须报告上次使用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无法识别空输出。
答案 0 :(得分:1)
您可以使用jq -r
获取不带引号的字符串。
答案 1 :(得分:0)
尝试使用
key1_last_used="Null"
以下作品
echo $(date "+%B %d %Y" ) $key1_last_used