2017-05-29 159 views
0

我试着写一个脚本(KSH),这将检查时间是正确的(+/- 5分钟)时间beetween + 5/-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中的日期操作符怎么了。 可以请别人帮忙吗?

UPDATE 和我已经注意到,命令

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 

不输出保存到文件

+0

好的,应该是$ Time,shell现在看到的文件,但仍然 - 日期:未知操作符错误弹出 –

回答

0

请评价/运行日期命令:

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

虽然我”米猜测这仍然是一项正在进行的工作,因为即使$ {Time}超过5米,它也应该打印'错误的小时'旧的。

+0

是的,它正在进行,但我卡在日期操作符如果,让我检查并复出你 –

+0

Works !,非常感谢你。 仍然有输出保存问题 - 发布更新 –

+0

至于新的/第二个问题...我会建议打开一个新的问题(因为有2个不同的问题)...并提供Log.txt文件的内容加上echo/cat/sed命令的完整输出[any(error)messages?文件被创建?什么是放在档案中?] – markp