首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么以及何时使用shell而不是Ruby

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

Stack Overflow用户
提问于 2010-02-27 00:02:16
回答 8查看 7.1K关注 0票数 19

由于我精通Ruby,因此我将在OS/X上使用它编写一些脚本。但后来我想,也许我错过了机会。我知道更喜欢Ruby而不是Bash (或者任何兼容sh的命令语言解释器)的原因有很多,但我不知道有什么理由不这样做。直接编写shell的好处是什么?

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

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

说到Ruby并不总是在那里,我的意思是它不是所有*nix发行版的标准部分,不像vi

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2010-02-27 00:06:35

除了一件事之外,shell的编程语言在所有方面都很糟糕。

管道。

shell的流水线编程语言非常震撼。

|&;操作符,加上()和`形成了一种简洁的小语言来描述流水线。

a & b是并发的

a ; b是顺序的

a | b是一个管道,其中a馈送b

shell编程的这一部分非常重要。

可以把( a & b & c ) | tee capture | analysis看作是一种很难用Python (或Ruby)表达的东西。您可以使用iterpipes完成大部分工作,但不是全部。

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

最需要注意的是在外壳级别涉及到expr的任何东西。一旦您开始尝试进行“计算”,您就已经脱离了shell的最佳点,您应该停止在shell中的编程,并重新考虑您正在做什么。

票数 23
EN

Stack Overflow用户

发布于 2010-02-27 07:02:54

Ruby有一个巨大的优势:您了解Ruby,但(我假设)您对Bash不是很了解!

就我个人而言,我使用Ruby编写复杂的脚本,使用Bash编写简单的脚本--对我来说,断点通常是实际上具有一组适当的命令行参数的任何东西--但是,我知道Bash和Ruby。

我建议您对任何足够简单的事情都使用Bash,这样您就可以事先在命令行上解决它,例如:

代码语言:javascript
复制
who | grep -i admin | cut -c10-20

--将Ruby用于其他任何事情

票数 6
EN

Stack Overflow用户

发布于 2010-02-27 00:08:40

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2342894

复制
相关文章

相似问题

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