在考虑学习哪种“脚本语言”时,我应该问自己什么问题?

时间:2013-10-30 22:07:24

标签: bash scripting zsh

我正在考虑学习bash脚本,但在此之前,我想知道这是否是“行业标准”。换句话说,我应该学习bash还是不同的脚本语言?我不确定这是一个加载的问题,还是类似于询问,我应该学习Java还是Ruby? zsh是我使用的当前shell吗?

我希望能够完成脚本的基础知识,这将主要用于运行带有函数的shell命令和典型的编程。

3 个答案:

答案 0 :(得分:2)

Bash是一个很好的快速和脏兮兮的工具 用于将您的日常生活自动化为系统管理员的工具。

可以使用胶水来组装这些工具 现有的Unix实用程序,并将证明最有用 你有涉及大量文件的文本处理任务。

事实上,bash是瑞士军刀的命令行 文本处理和自动化。

但是,如果你计划建造任何大而复杂的东西, 那么bash肯定不是正确的工具。

从软件工程的角度来看,实际上并非如此 一个很好的语言和python / perl类型的脚本语言 好多了。

我的经验法则是:一个可以用更少的时间完成的脚本任务 超过50-100行,不需要花哨的数据结构, 复杂循环,递归,继承,引用(又称指针) 然后 - >使用bash。

对于任何其他脚本任务,使用{python,lua,perl,ruby等...}

答案 1 :(得分:1)

我不建议使用zsh进行脚本编写(在终端中使用它没有问题)。事实上,一方面它并没有提供比Bash更多的东西。另一方面,它的标准不如Bash,它是默认shell和shell脚本语言最常用的Linux。

当我说最常用的时候,我认为是csh,tcsh,zsh,bash,dash,dash。另外两个标准是sh(现在我觉得太旧了)和ksh(在最新版本中比Bash提供的可能性略小)。

然后,当你必须做出扭曲的治疗时,Bash与grep,sed,awk ......一起运作良好。

Perl可以很好地取代它,但对于许多治疗方法,Bash效果很好。 Personnaly,我更喜欢使用bash / sed / awk作为我的shell脚本。

答案 2 :(得分:1)

bash是任何操作系统级自动化的方法。

但是,除了操作系统级别的脚本之外,还有很多东西会在bash中疯狂。除了Bash之外,学习一种更高级的脚本语言,如perl / python / ruby​​。顺便说一句,java不是适合您需要的工具。

我从bash开始,转到perl然后拿起红宝石。今天我根据我的用例同时使用全部3个。这一切都与完成工作有关。但这3个组合对我来说一直都很有效。