我很难理解什么是脚本。据我所知,它是 shell 中的一组命令。bash 脚本和 shell 脚本有什么区别?有人能解释一下这个概念吗?
答案1
从http://en.wikipedia.org/wiki/Shell_script:
Shell 脚本是一种计算机程序,设计用于由命令行解释器 [Unix] shell 运行。各种 Shell 脚本的方言都被视为脚本语言。
换句话说:bash 脚本是 shell 脚本,但 shell 脚本不一定是 bash 脚本。
与应用程序不同,脚本通常以一系列命令的形式执行,从 A 到 Z(尽管它可以循环运行)。脚本一旦启动,几乎不需要任何用户输入,并且通常是为了完成一项工作而编写的。
虽然现代应用程序通常以类的形式编写以完成更广泛的任务,但根据用户的决定,脚本大多从上到下执行其命令,并在完成后退出。
有许多脚本语言,其中 bash 只是其中一种。以下列举一些在 Linux 上使用的脚本语言:Python,狂欢,perl,awk,sed
答案2
脚本和程序之间的典型区别在于,脚本是解释性的,而程序是编译性的并以可执行形式提供。
如今,这个定义已经变得模糊,因为如果你真的愿意,你可以编译脚本(例如:Facebook 编译的 PHP),而现代编程语言在较低级别使用解释(例如:带有 JVM、.NET 和 IL 的 Java)
Shell 脚本是使用 Shell 命令语言 (sh) 的脚本。sh 是一种具有多种实现的规范。bash 最初是 sh 的实现,但它变得非常不同,尽管它支持 sh 兼容模式。