隐藏数组日期字符串并在Shell脚本中减少3个小时

时间:2016-08-29 14:41:05

标签: arrays linux shell

我需要从数组中减少3个小时并再次在命令行中打印

数组的输出是:

12:29:14 
14:10:26 
14:30:34 
14:35:31 
14:35:10 
11:57:03 
12:49:31 
12:57:09 
11:04:49 
13:06:57 
14:35:34 
14:30:49 
14:34:28 
12:58:02 
14:28:12 
12:29:18 
11:33:23 
12:27:04 
14:35:43 
12:58:46 

我正在尝试这条线,但没有用。

date2=$(date  -d "${array[@]}" "3 hour ago" +"%H:%M:%S")

你能帮我解决一下吗?

2 个答案:

答案 0 :(得分:1)

试试这个;

#!/bin/bash
times=( "12:29:14" "14:10:26" "14:30:34" "14:35:31" "14:35:10" "11:57:03" "12:49:31" "12:57:09" "11:04:49" "13:06:57" "14:35:34" "14:30:49" "14:34:28" "12:58:02" "14:28:12" "12:29:18" "11:33:23" "12:27:04" "14:35:43" "12:58:46")

for dateItem in ${times[@]}
do
date2=$(date --date="$dateItem 3 hour ago" +%H:%M:%S)
echo $date2
done

答案 1 :(得分:0)

嗨,在做了一些改变后,它的工作正常,

如果你希望没有阵列的话 这是:

date2=$(date  -d "$times 3 hour ago" +"%H:%M:%S")
echo $date2