在BASH中将日期作为STDIN传递给ruby函数[关闭]

Posted

技术标签:

【中文标题】在BASH中将日期作为STDIN传递给ruby函数[关闭]【英文标题】:Passing a date to a ruby function as STDIN in BASH [closed] 【发布时间】:2013-07-11 12:19:41 【问题描述】:

我有一个 ruby​​ 文件,我通常会在命令行中运行如下:

ruby file.rb YYYY-MM-DD YYYY_MM_DD

我想编写一个 bash 脚本来运行这个文件,其中 YYYY-MM-DD 都是昨天日期的字符串。

我该怎么做?

【问题讨论】:

这与 STDIN 有什么关系?命令行参数不是标准输入。 【参考方案1】:

请参阅“YYYY-MM-DD format date in shell script”以了解如何以您想要的任何格式获取日期。

昨天的日期可以找到:

date -d '1 day ago' +'%Y/%m/%d'

来自“How To Get Yesterday’s Date using BASH Shell Scripting”。

/ 替换为-_,然后将它们传递给Ruby 语句。

编辑:投票给另一个人。他们的答案实际上有代码。

【讨论】:

【参考方案2】:
ruby file.rb $(date -d yesterday +'%Y-%m-%d') $(date -d yesterday +'%Y_%m_%d')

请注意,这只适用于 bash。如果您使用反引号而不是 $(),其他类似 Bourne 的 shell 也可以使用。

【讨论】:

警告是错误的; $(command) 应该在任何 POSIX shell 中工作。如果您使用的是真正古老的东西,例如 SunOS 3,那么也许吧。

以上是关于在BASH中将日期作为STDIN传递给ruby函数[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 ruby​​ 中将函数作为参数传递

如何在 Rails 视图中将 Ruby 变量传递给 JavaScript 函数?

如何在Rails视图中将Ruby变量传递给JavaScript函数?

在bash中将数组作为参数传递

在bash中将包含空格的变量传递给命令[重复]

如何在 Python 中将日期传递给 MySQLdb?