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

由于我熟悉Ruby,因此我将在OSX上使用它编写一些脚本。 但后来我想,也许我错过了这条船。 我知道很多理由更喜欢Ruby而不是Bash(或任何sh兼容的命令语言解释器),但我不知道没有任何理由。 直接编写shell的好处是什么?

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

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

编辑:由Ruby不总是在那里,我的意思是它不是所有* nix发行版的标准部分,不像vi


除了一件事之外,shell的编程语言对所有人都是可怕的。

管道。

shell的管道编程语言完全是岩石。

|&; 运算符plus ()和```形成了一个用于描述管道的简洁语言。

a & b是并发的

a ; b a ; b是顺序的

a | b a | b是饲料b的管道

shell编程的那部分很有用。

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

其余大部分你可以不用,并使用Python(或Ruby),你会更快乐,更高效。

expr是在shell级别涉及expr任何东西。 只要你开始尝试做“计算”,你已经离开了shell的甜蜜点,你应该停止在shell中编程,并重新思考你在做什么。


Ruby有一个巨大的优势:你知道Ruby和(我认为)你不知道Bash是那么好!

我个人使用Ruby来代表复杂的脚本,Bash使用简单的代码 - 对我来说,断点通常是任何事实上都有一组适当的命令行参数 - 但是,我知道Bash和Ruby。

我建议你使用Bash来处理足够简单的事情,以便事先在命令行中完成它,例如:

who |grep -i admin |cut -c10-20 

- 用Ruby来做其他事情


bash中的核心功能是运行其他命令行应用程序。 让这些程序彼此交互等等。这不是Ruby设计的目标(对吧?)。

链接地址: http://www.djcxy.com/p/71.html

上一篇: Why and when to use shell instead of Ruby

下一篇: Move the most recent commit(s) to a new branch with Git