最近,我想用bash中的一个班轮计算两个日期(以天为单位)的时间差。所以我想使用命令
echo $((($(date +%s --date "2018-01-08")-$(date +%s --date "1999-12-28"))/(3600*24))) days这将产生"6586天“。
由于笨手笨脚,我忘了在第一个日期条目中键入最后的倒逗号:
我得到了这个输出:
echo $((($(date +%s --date "2018-01-08)-$(date +%s --date "1999-12-28"))/(3600*24))) days
bash: command substitution: Zeile 4: Dateiende beim Suchen nach »"« erreicht.
bash: command substitution: Zeile 5: Syntaxfehler: Unerwartetes Dateiende.
> ^C
rosika@rosika-10159:~$ echo $?
130错误信息是清楚的,我想,但我没有得到我的命令提示符。这个系统似乎一直在等待着什么。然而,S并没有为我澄清什么。
我最后输入了"CTRL+C“,所以我得到了命令提示符。I希望我在那里做得对。
错误代码为"130“。嗯,S对我来说很清楚,不可能是"0“。
我想要了解的是:这个系统可以等待什么?
也许你们中的一些知识渊博的人能对这件事有所了解?
提前谢谢。
许多问候。罗西卡
P.S.:
我的系统: Linux/Lubuntu 20.04.2LTS,64位
发布于 2021-02-10 15:39:34
shell正在等待结束的双引号和结束的))的两倍。
$ echo $((($(date +%s --date "2018-01-08)-$(date +%s --date "1999-12-28"))/(3600*24))) days" )) ))
date: invalid date ‘2018-01-08)-946335600)/(3600*24))) days’
bash: () : syntax error: operand expected (error token is ") ")
$ echo $?
1发布于 2021-02-10 15:43:48
您的命令包含一个语法错误:在第二个日期调用时缺少双引号:
--date "2018-01-08
user@host:~$ echo $((($(date +%s --date "2018-01-08")-$(date +%s --date "1999-12-28"))/(3600*24))) days
6586 dayshttps://askubuntu.com/questions/1315298
复制相似问题