![]() |
1
21
shell的编程语言对所有人来说都很糟糕,只有一件事。 管道。 Shell的管道编程语言完全是Rocks。
这个
Shell编程的那一部分很震撼。
想想
剩下的大部分你可以不使用,使用python(或ruby),你会更快乐,更有效率。
最需要注意的是
|
![]() |
2
6
鲁比有一个巨大的优势:你了解鲁比,而且(我想)你不太了解巴什! 我个人用Ruby编写复杂的脚本,用Bash编写简单的脚本——对我来说,断点通常是任何具有适当命令行参数集的东西——但是,我同时知道Bash和Ruby。 我建议您对任何足够简单的东西使用bash,这样您就可以事先在命令行上解决它,例如:
--用红宝石做其他的东西 |
![]() |
3
2
bash的核心功能是运行其他命令行应用程序。使这些程序相互交互等等。这不是Ruby的设计目的(对吗?). |
![]() |
4
2
直接编写posix或bash脚本对于循环文件列表的操作很好。诸如此类
shell可以很好地完成命令替换和简单的参数转换。shell程序允许相当复杂的程序合理地模块化。 当需要某种内部数据结构时,会发生到类似Ruby的转换。shell是一个宏处理器,因此它能够像“元编程”那样,在那里组成变量名。有些版本的bash有数组,所有版本都可以“metaprogram”变量名,其中索引是名称的一部分。 但它是100%黑客,甚至内置阵列都是粗糙的。一旦必须做出决定并保留数据结构,就应该切换到Ruby了。 |
![]() |
5
1
我看不出鲁比有什么问题。你可以用反勾号代替
此外,您可以很容易地获取stdout的内容(不确定stdin的内容),并形成自己的小管道。 我认为Ruby在编写脚本方面是一个胜利,但作为一个普通的shell,它更不容易做到这一点,因为它总是需要记住在执行命令时放回节拍。 |
![]() |
6
1
|
![]() |
7
1
@如果您想比较Ruby和Shell,可以使用Ruby的解释器(不带库/模块)进行比较。把它的内部结构和外壳比较一下。否则,他们是 几乎 相同的。为什么?例如,如果您想进行shell提供的以外的高级数学,shell可以使用bc/awk/dc。这些是shell的数学“库”。如果需要日期结构(如关联数组),可以使用awk。(相当于Ruby中的hashes)。在现代的bash shell中,也有关联数组。您可以将*nix外部工具(例如wc、grep、sed等,以及/usr/bin/、/usr/s bin等中的工具)视为shell的“库”。 最后,如果您打算在Ruby中大量使用System(),我建议您使用其中一个提到的shell,shell在管道方面非常出色。等。。 |
![]() |
8
0
Shell的编程语言占用空间非常小,依赖性非常少。除此之外,我看不出用它有什么意义。个人而言,我更喜欢在这类任务中使用Perl或Python。 |
![]() |
Stilian · 存储库设置中没有Github页面部分 2 年前 |
![]() |
Kellen · 查看$卷展栏功能列表 2 年前 |
![]() |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 2 年前 |
![]() |
johncssjs · 将数组转换为每个元素的嵌套哈希 2 年前 |
![]() |
solidsnake99 · Rails db:如何绕过验证 2 年前 |