Dan*_*ark 18 ruby unix scripting
由于我熟悉Ruby,我即将使用它在OSX上编写一些内容.但后来我想,也许我错过了这条船.我知道有很多理由喜欢Ruby而不是Bash(或者任何sh兼容的命令语言解释器),但我不知道有什么理由不这样做.直接编程shell有什么好处?
我打算system在必要时使用系统命令.
注意:我已经知道Ruby并不总是存在,但我对技术,语义和句法标准感兴趣.
编辑: Ruby并不总是存在,我的意思是它不是所有*nix发行版的标准部分,不像vi.
S.L*_*ott 22
shell的编程语言对于除了一件事之外的所有东西都很糟糕.
管道.
shell的管道编程语言完全晃动.
的|,&与;运营商,再加上()和```形成描述管道一个整洁的小语言.
a & b 是并发的
a ; b 顺序
a | b 是一个饲料b的管道
那部分shell编程摇滚.
可以把它想象( a & b & c ) | tee capture | analysis成在Python(或Ruby)中很难表达的东西.你可以用iterpipes做很多事情,但不是全部.
剩下的大部分都可以不用,并使用Python(或Ruby),你会更快乐,更有成效.
最值得注意的是涉及exprshell级别的任何事情.一旦你开始尝试"计算",你就已经越过了shell的最佳位置,你应该停止在shell中编程并重新思考你正在做的事情.
Ruby有一个巨大的优势:你知道Ruby和(我假设)你不太了解Bash!
我个人使用Ruby为复杂的脚本和Bash简单的 - 对我来说,断点通常是什么,实际上有一组适当的命令行参数 - 但是,我知道,这两个Bash和红宝石.
我建议你使用Bash来做任何简单的事情,你可以事先在命令行上解决,例如:
who |grep -i admin |cut -c10-20
Run Code Online (Sandbox Code Playgroud)
- 并将Ruby用于其他任何事情