使用awk或echo返回昨天在shell脚本中的日期

时间:2014-07-04 09:59:09

标签: shell date time

我确信这有一个简单的答案:

为什么下面没有给我脚本中的日期和时间?我应该使用什么而不是awk?如果我需要查询文件,awk工作正常,但我想在这里使用是错误的。

代码:

$ySTD=$(date --date yesterday "+%Y-%m-%d")  | awk '{print substr($1,1,10)}'

echo ${ySTD}
echo 'STD calculated from DATE - last 24 hrs data will be fetched'

${ySTM}=$(date --date yesterday "+%T")|  awk  '{print substr($1,1,5)}' 
echo ${ySTM}

在shell中,我在脚本运行时得到它:

+ awk '{print substr($1,1,10)}'
++ date --date yesterday +%Y-%m-%d
+ =2014-07-03
logdat3: line 41: =2014-07-03: command not found
+ echo

+ echo 'STD calculated from DATE - last 24 hrs data will be fetched'
STD calculated from DATE - last 24 hrs data will be fetched
+ awk '{print substr($1,1,5)}'
++ date --date yesterday +%T
+ =11:33:34
logdat3: line 45: =11:33:34: command not found
+ echo

非常感谢提前

1 个答案:

答案 0 :(得分:1)

你需要严格,不需要awk:

$ read ySTD ySTM < <(date --date yesterday "+%Y-%m-%d %T")                                                                     
$ echo $ySTD
2014-07-03
$ echo $ySTM
12:16:37

无论如何,您修改了原始代码:

ySTD=$(date --date yesterday "+%Y-%m-%d")

echo ${ySTD}
echo 'STD calculated from DATE - last 24 hrs data will be fetched'

ySTM=$(date --date yesterday "+%T") 
echo ${ySTM}

您不需要获取子字符串。