首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关于命令行语法的问题

关于命令行语法的问题
EN

Ask Ubuntu用户
提问于 2021-02-10 15:32:32
回答 2查看 51关注 0票数 0

最近,我想用bash中的一个班轮计算两个日期(以天为单位)的时间差。所以我想使用命令

代码语言:javascript
运行
复制
echo $((($(date +%s --date "2018-01-08")-$(date +%s --date "1999-12-28"))/(3600*24))) days

这将产生"6586天“。

由于笨手笨脚,我忘了在第一个日期条目中键入最后的倒逗号:

我得到了这个输出:

代码语言:javascript
运行
复制
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位

EN

回答 2

Ask Ubuntu用户

发布于 2021-02-10 15:39:34

shell正在等待结束的双引号和结束的))的两倍。

代码语言:javascript
运行
复制
$ 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
票数 0
EN

Ask Ubuntu用户

发布于 2021-02-10 15:43:48

您的命令包含一个语法错误:在第二个日期调用时缺少双引号:

--date "2018-01-08

代码语言:javascript
运行
复制
user@host:~$ echo $((($(date +%s --date "2018-01-08")-$(date +%s --date "1999-12-28"))/(3600*24))) days
6586 days
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1315298

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档