ruby - 为什么以及何时使用 shell 而不是 Ruby

标签 ruby scripting unix

<分区>

因为我熟悉 Ruby,所以我打算使用它在 OS X 上编写一些脚本。但后来我想,也许我错过了船。我知道有很多理由更喜欢 Ruby 而不是 Bash(或任何与 sh 兼容的命令语言解释器),但我不知道有什么理由不这样做。直接对 shell 进行编程有什么好处?

我打算在必要时使用 system 来利用系统命令。

注意:我已经知道 Ruby 不会一直存在,但我主要对技术、语义和句法标准感兴趣。

Ruby 并不总是存在,我的意思是它不是所有 *nix 发行版的标准部分,这与 vi 不同。

最佳答案

除了一件事,shell 的编程语言很糟糕。

管道。

Shell 的管道编程语言非常棒。

|&; 运算符,加上 () 和 ``` 组成了一个整洁的小东西描述管道的语言。

a & b并发

一个; b 是连续的

一个 | b 是一个管道,其中 a 提供给 b

shell 编程的那一部分很厉害。

想想 ( a & b & c ) |开球 | analysis 是一种很难用 Python(或 Ruby)表达的东西。你可以用 iterpipes 做很多事情,但并非全部。

其余的大部分你都可以没有,使用 Python(或 Ruby)你会更快乐,更有效率。

要注意的最重要的事情是在 shell 级别涉及 expr 的任何事情。一旦您开始尝试进行“计算”,您就已经超出了 shell 的甜蜜点,您应该停止在 shell 中编程并重新考虑您正在做的事情。

关于ruby - 为什么以及何时使用 shell 而不是 Ruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2342894/

相关文章:

ruby-on-rails - 如果函数调用返回某些东西,Ruby/Rails 返回结果

ruby-on-rails - mongodb 中的高效下采样

shell - shell脚本中的全局环境变量

windows - 如何创建 PowerShell 脚本以将文件复制到 USB 闪存驱动器?

c - 为什么这不是 qmail 中的错误?

ruby-on-rails - 更新属性而不改变 updated_at 字段

ruby - watir 浏览器对象可以在以后的 Ruby 进程中重复使用吗?

scripting - 脚本语言和非脚本语言的区别

c - 首次输出到 stdout 后特定子进程的用户 CPU 时间

mysqld_safe 禁用互联网连接