我想比较两个日期和时间变量:
2016-01-21 17:15:06.614852743 +0300
我正在尝试这个:
MODDATE_INIT=$(stat -c %y /home/user/my_file)
if [ $(stat -c %y /home/user/my_file) -lt $MODDATE_INIT ]; then cat my_file; fi"
我收到错误:
bash:[:论据太多了 我做错了什么?请帮我修复我的脚本。
答案 0 :(得分:1)
您没有引用日期字符串,因此它由shell扩展并显示为
if [ $(stat ...) -lt 2016-01-21 17:15:06...]
^--arg 1 ^--arg 2 ^---arg 3???
到[
二进制文件。时间组件显示为-lt
测试的额外参数,因此“参数太多”。
尝试
if [ $(stat -c %y /home/user/my_file) -lt "$MODDATE_INIT" ]; then cat my_file; fi"
^-------------^
请注意额外的报价。