我感兴趣的是对您的看法,Shell Scripting与其他脚本语言相比具有多大的竞争力?
例如,Shell脚本为python或perl或ruby或R等提供了什么样的好处......从Shell Scripting极客那里了解Shell Scripting的优势会很有趣...... :)
没有攻击,我是shell脚本的新手,想要了解shell相对于其他脚本语言的实际优势..
提前谢谢
答案 0 :(得分:2)
Shell脚本非常擅长调用程序。他们还以很多方式为stdin,stdout和stderr重定向,并且非常善于对所调用的程序返回的错误代码做出反应。如果您对使用$1
等参数感到满意,函数定义通常非常有用。
没有其他语言无法做到,但语法只是进行了优化,使这些事情变得非常简单。
虽然shell脚本(特别是对于可正确编写脚本的shell,例如bash或zsh,当然不是csh或tcsh)确实提供了许多其他有用的东西,并允许写几乎任何东西(我认识的学生认为数字的任务是对他来说太简单了,所以他把他的代码写成了一个bash脚本......当然工作正常),语法根本就没有优化,你通常必须编写奇怪的行噪声甚至将n
增加1
总之,我会将shell脚本用于任何超过80%调用外部程序的东西,以及其他任何涉及更多逻辑和“经典编程”的脚本任务的东西(通常是ruby)。
答案 1 :(得分:2)
贝壳的优势:
哪些贝壳往往不那么好:
答案 2 :(得分:1)
在我看来,shell脚本中的管道和过滤器系统可以让你很容易地为shell编写有用的单行程序。通常,您还可以使用许多简短的方法与典型的shell任务进行交互,例如检查文件存在,迭代文件等。在更通用的脚本语言中,您可能需要更多代码来完成这些任务。 但是,您可以在其他语言中执行更多操作,例如GUI编程,您可以获得正确的面向对象,继承等。 IMO它是用于不同方面的两个工具,它们具有一些共同的用例。 Shell脚本语言将允许shell任务的自动化或用于与文件,套接字,进程等直接交互的小脚本。脚本语言在不同的事物上更通用或专门(例如R专门用于计算和表示统计问题)。 / p>
答案 3 :(得分:0)
所有shell都是不同的,所以这必须用一点点盐,但是一些更好的shell脚本环境和你提到的一些语言(例如perl和ruby)之间没有太大区别。特别是在编写批处理脚本时。
但是对于日常的repl使用,shell环境将更紧密地耦合到您的文件系统,包括将您链接到文件系统中的某个位置。这将是主要优势。