Shell 已经很强大了,为什么在 Linux 操作还需要 Python,Ruby
答案:2 悬赏:60
解决时间 2021-02-05 20:06
- 提问者网友:空白
- 2021-02-05 15:23
Shell 已经很强大了,为什么在 Linux 操作还需要 Python,Ruby
最佳答案
- 二级知识专家网友:绝望伪装
- 2021-02-05 16:23
老实说shell一直用。但是真不如python好用。反过来讲就有道理了。
有了python为什么还要shell。 因为python几乎可以做shell所有的事情,而且更方便,更好。
原因很简单,因为shell更小巧,更适合做批处理。这是linux设计之初就定下来的原则。
python强大在于它是通用语言。字符串,文件解析,正则表达式等等都要比shell方便。另外它还有强制的扩展功能。不象shell那样需要各种命令工具支持。编程也更优美,可读性也更强。
python诞生之初就是为了简化运维工作量用的。最后发展成通用语言。
ruby则不同。它就是通用语言。为了编程乐趣而生的。优雅。
这两种语言只需要学一个就可以了。
有了python为什么还要shell。 因为python几乎可以做shell所有的事情,而且更方便,更好。
原因很简单,因为shell更小巧,更适合做批处理。这是linux设计之初就定下来的原则。
python强大在于它是通用语言。字符串,文件解析,正则表达式等等都要比shell方便。另外它还有强制的扩展功能。不象shell那样需要各种命令工具支持。编程也更优美,可读性也更强。
python诞生之初就是为了简化运维工作量用的。最后发展成通用语言。
ruby则不同。它就是通用语言。为了编程乐趣而生的。优雅。
这两种语言只需要学一个就可以了。
全部回答
- 1楼网友:寂寞的炫耀
- 2021-02-05 18:03
作为一名shell(sh/bash)用户和编程语言爱好者,我说说自己的体会吧。
shell作为一门编程语言,和其它编程语言一样,有自己所擅长的问题领域。至少目前来看,还没有哪一门编程语言适合解决所有的问题。正如一个设计原则所说:if it is good for everything, it is good for nothing. 当我们说一门编程语言适合解决某类问题时,我们实际想要表达的是,使用这门语言,可以在最短的时间内获得一个性能,可读性和可维护性等各方面都可接受的程序。而做到这一点的关键是,这门编程语言必须在这类特定问题上,有前期的经验积累。这些经验会以数据结构或库的形式体现出来。一些激进的语言设计,甚至会将这些经验,以词法糖的方式嵌入到语言中。最终的效果是,使用一门语言解决他所擅长的问题时,只需要借鉴一个现成的思路,在他的基础上进行极少的创新,然后编写很少的代码就可以完成。本质是,当你在使用一门语言解决它所擅长的问题时,你实际是站在了这个语言以前的无数个使用者的经验基础之上。
shell这门编程语言,最初设计时就是为了方便系统管理工作。所以,他在语法和数据结构上,针对系统管理工作中遇到的常见问题,进行了特殊的优化。例如,系统管理时要运行很多现有的程序,因而shell通过命令查找规则,将内部命令和外部程序融合在了一起,不做区分;再比如,系统管理时经常要将处理结果临时保存,因而shell在语法上支持重定向功能,可以将一个程序的标准输出直接存储到文件中;再比如,系统管理时,一个程序的运行结果往往会作为另一个程序的输入数据,因而shell在语法上支持管道操作;再比如,系统管理时,数据都是以字符串形式表示的,因而shell在语法上支持大量的字符串操作,包括通配、正则表达式等等。所有的这些,达到的最终效果是,使用shell语言编写系统管理的脚本时,好想,好写,好调试,最终的程序短小精悍。个人认为,shell语言的最大魅力还是体现在命令行上。简单,直接,用一行命令,将现有的程序拼接在一起,就可以完成工作。而同样的工作,如果用其它的编程语言,就可能需要几百行。
而如果用shell语言来完成其他工作呢?它天生就不是干这个的。用shell语言做数值运算?抱歉,性能不够。用shell语言实现复杂算法?抱歉,除了字符串和简单的数组,没有其它的数据结构了。用shell语言编写大规模的程序?可能java语言更合适一些。
perl语言,据perl作者的介绍,是shell语言的加强版,改进了很多shell语言原有的缺点。个人认为,如果学习shell语言的过程可以比作是捡贝壳的话,那么学习perl语言的过程就是筛沙子,整个海滩的沙子。
历史是很多偶然因素造就的。语言本身的设计只是它兴盛和衰亡背后的一个因素。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |