我正在考虑学习bash脚本,但在此之前,我想知道这是否是“行业标准”。换句话说,我应该学习bash还是不同的脚本语言?我不确定这是一个加载的问题,还是类似于询问,我应该学习Java还是Ruby? zsh是我使用的当前shell吗?
我希望能够完成脚本的基础知识,这将主要用于运行带有函数的shell命令和典型的编程。
答案 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个组合对我来说一直都很有效。