【问题标题】:Time beetween +5/-5 minutes+5/-5 分钟之间的时间
【发布时间】:2017-10-29 22:07:11
【问题描述】:

我正在尝试编写一个脚本 (ksh),它将检查时间是否正确(+/- 5 分钟)

echo "$(cat /home/chojtom/Tomek/Log.txt | sed -e 's:\([0-9][0-9][0-9][0-9]\)\([-]\)\([0-9][0-9]\)\([-]\)\([0-9][0-9]\)\([[:space:]]\)\(.*\):\7:g')" | sed     -e "s:[:]::g" > "/home/chojtom//Time.csv"

这是格式可变的时间:HHMMSS

if [ $(Time) -ge  date  "+%H%M%S" -d "5 min ago" ]; then
echo "Wrong hour"

else


echo "Date Correct"

但在这一步我收到消息 ./test.sh[45]: Time: not found [No such file or directory] ./test.sh[45]: [: date: unknown operator DATE CORRECT

文件 Time.csv 位于 HHMMSS 行。

想不通,IF 中的日期运算符有什么问题。 可以请人帮忙吗?

更新 我注意到了这个命令

Year="/home/chojtom/year.csv"

$(cat /home/chojtom/Tomek/Log.txt | sed -e 's:\([0-9][0-9][0-9][0-9]\)\([-]\)\([0-9][0-9]\)\([-]\)\([0-9][0-9]\)\(.*\):\1:g')" > $Year

不将输出保存到文件中

【问题讨论】:

  • 好的,应该是$Time,shell现在看到文件了,但是还是- date:unknow operator错误弹出

标签: date ksh


【解决方案1】:

尝试评估/运行 date 命令:

if [ ${Time} -ge $(date  "+%H%M%S" -d "5 min ago") ]; then
echo "Wrong hour"
else
echo "Date Correct"
fi

虽然我猜这仍在进行中,因为即使 ${Time} 超过 5 分钟,它也应该打印“错误时间”。

【讨论】:

  • 是的,它正在进行中,但我卡在 If 中的日期运算符上,让我检查一下并回复你
  • 工作!非常感谢。输出保存仍有问题 - 更新后
  • 至于新/第二期...我建议打开一个新问题(因为有 2 个不同的问题)...并提供 Log.txt 文件的内容以及完整的echo/cat/sed 命令的输出 [任何(错误)消息?文件是否被创建?文件里放了什么?]
猜你喜欢
  • 1970-01-01
  • 2020-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多