【发布时间】:2011-08-28 20:34:53
【问题描述】:
首先,我需要在 Ruby 和 Bash 脚本之间使用相同的信息。
我从未这样做过,也从未使用过 YAML。我为什么想到 YAML,是因为 Ruby 从标准库中得到了相当好的支持。问题是我找不到任何关于 Bash 和 YAML 交互的信息。我想编写一些 YAML 文件(比如 foo.yml)并在两个脚本中使用它的内容:bar.rb 和 baz.sh。
也许 YAML 的使用是错误的?在程序之间共享数据最正确的方法是什么?
【问题讨论】:
-
什么样的数据?从 Bash 中使用 Yaml 听起来一点也不好玩,但如果你的结构相当简单,也许它是可行的。
-
Ruby 程序是一个命令行工具。 Bash 脚本是一个文件,存储在 /etc/bash_completion.d/foo 中。我想使用 YAML 来存储 Ruby 程序的命令行选项。为什么我需要这个?我认为 YAML 将是在两个程序之间共享命令行选项的便捷方式(DRY 原则或其他)。所以,基本上,Bash 脚本是一个用于自动完成的脚本。我不想两次(在两个程序中)编写相同的选项,而 foo.yml 应该可以帮助我。
-
为什么不直接根据你的 YAML 文件生成自动补全配置呢?选项不会一直在变化,那么为什么还要尝试使自动完成配置动态化呢?
-
为什么?我不知道:)“生成”是什么意思?目前我既没有 foo.yml,也没有 baz.sh 文件。我只是想知道什么是正确的方法。
-
为您的 Ruby 脚本创建一个选项,以改为从其内部数据库输出 Bash 自动完成脚本。