如何在bash脚本中将linux“date +%s”输出转换为更易读的格式

时间:2010-11-30 15:30:07

标签: bash datetime

这是脚本:


#!/bin/bash

i="0"
startTime=`date -u +%s`
startTime=$[$startTime+$1+5]
echo ""
echo "##################"
echo "LAUNCHING REQUESTS"
echo "  COUNT:  $1 "
echo "  DELAY:  1 "
echo "  EXECUTION:  $startTime "
echo "##################"
echo ""

while [ $1 -gt "$i" ]
do
  i=$[$i+1]
  php avtestTimed.php $1 $2 $startTime &
  echo "QUEUEING REQUEST $i"
  sleep 1
done



所以我想将$ startTime转换为UTC格式

5 个答案:

答案 0 :(得分:3)

尝试:

date -d @$(($startTime-$1-5))

如果你想解码$ startTime变量的第一个状态,或者这个:

date -d @$startTime

并且,您可以添加-u参数以获取UTC时间...%)

阅读man date

答案 1 :(得分:1)

您在寻找什么格式?简单地用-u执行日期将为您提供UTC时间的可读输出格式,即:

# date -u
Tue Nov 30 15:35:12 UTC 2010

答案 2 :(得分:1)

您可以使用-d$startTime传递回date进行处理,只需在其前面添加@,以便将其识别为自纪元以来的秒数。

$ date -d @$startTime

完成此操作后,您可以更改输出格式。我建议查看man pagedate的信息文档。对于UTC输出,您将使用

$ date -d @$startTime -u

答案 3 :(得分:0)

我还有另一个变量

  

startTimeHuman = $(date -u -R)

在您设置startTime的位置旁边。通过这种方式,您可以使用两种变体,一种用于数学运算,一种用于人类理解。

答案 4 :(得分:0)

得到了perl?

human_time=$(perl -e 'print scalar gmtime(shift)' $startTime)