【发布时间】:2022-01-12 00:51:25
【问题描述】:
我了解如何使用date 命令重新格式化日期,我对此很好。但是,我正在努力解决一个问题——我想重新格式化的日期是另一个命令的输出,所以我将它存储在变量中。我正在为如何指定要获取一个命令的输出并通过date -d 运行它并将其存储在另一个变量中的语法而苦苦挣扎。这是我尝试过的:
expdate=`get_expire_date.sh`
echo $expdate
Mon 23 Mar 2022 05:05:05 PM UTC
expdval=`date -d'($expdate)'`
echo $expdval
我得到的是今天的日期,而不是脚本输出中转换后的过期日期。当然,如果我不使用括号,它会将 $expdate 视为要翻译的文字并给出错误,而如果我不使用单引号,它会使用日期字符串中的空格作为分隔符,并且只获取第一个令牌。
我做错了什么?
【问题讨论】:
-
请将
get_expire_date.sh的输出添加到您的问题中。 -
expdval=$(date -d"$expdate")(假设$expdate的格式为date所理解的格式——这又回到赛勒斯关于get_expire_date.sh输出的问题) -
@Fravadona,不,
date -d不将文件名作为参数。进程替换看起来像文件(例如echo <(pwd)) -
糟糕,我的错:
echo "$(date -d "$(./get_expire_date.sh)")" -
还要考虑到
-d的含义在不同平台上会发生变化