b / w Bash和Shell脚本有什么区别

时间:2015-08-13 23:27:45

标签: linux bash shell cmd scripting

我已经为UNIX和Windows编写了近3年的脚本。我一直对这两个术语感到困惑,有一段时间我认为bash脚本是windows cmd脚本,而shell脚本是UNIX脚本,但我已经知道这是不对的。那么这两个术语有什么区别:BASH和Shell脚本?

4 个答案:

答案 0 :(得分:5)

" Shell脚本"是由shell执行的脚本的通用术语。

" Bash脚本"是一个更具体的术语;它指的是由一个特定shell Bash shell

执行的脚本

shell是一个命令解释程序。它可以交互使用(用户在提示符下键入命令,shell执行它们),或者作为脚本的解释器(其中一系列命令写在文件中)。

Bourne shell是UNIX上较老的shell之一(不是最老的,但我们不用担心古代历史)。已经实现了其他几个shell作为Bourne shell的替代或扩展。

特别是,GNU Bash可能是目前最常用的shell。它实现了与Bourne shell相同的功能,以及许多扩展。

Bourne shell脚本通常以"Shebang"行开头:

#!/bin/sh

Bash脚本通常以指定Bash shell的Shebang开头:

#!/bin/bash

并且可能取决于Bash实现的功能,但不取决于Bourne shell实现的功能。

(在某些操作系统上,/bin/sh可能与/bin/bash的命令相同。)

并非所有Unix shell都基于Bourne shell。特别是,csh及其派生tcsh在很大程度上与Bourne派生的shell不兼容。

Bash与Windows cmd脚本几乎没有关系,只是Bash和cmd.exe都是命令解释器。

答案 1 :(得分:2)

Shell脚本是可以由系统shell运行的任何脚本的通用名称。

现在shell一个接受命令并执行它们的程序 - 一种REPL /命令解释器。 sh是一个shell。 bashfishzsh

也是如此

cmd有时称为Windows shell,但windows shell是Windows UI的官方名称。微软称之为command interpreter(更多名称混淆)。

cmdmsdos的脚本通常称为"批处理脚本"。

所以在* nix的土地上通常是:" bash"执行" shell脚本"。在窗户的土地上:" cmd" (dos提示)执行"批处理脚本"。

答案 2 :(得分:1)

Windows Linux MacOSX 的方式与操作系统 Audi em>, Ford Chevrolet 汽车:windows' cmd.exe BASH ZSH CSH TCSH Korn Shell Bourne Shell ...只是不同种类的 shell

一般来说,“shell”类似于设计用户界面,可以访问系统的“核心”。因此,在这种情况下,shell是用于操作系统的文本界面(也称为命令行界面又名 CLI )。

现在,当您谈论“shell脚本”时,它只是使用为用户界面开发的语言来自动化该系统上的任务。存在一些以图形为导向的脚本(如Office的宏),但大多数时候它是关于创建“批处理”文件(Dos / Windows上的.bat)或者unix世界中的什么称为“shell脚本”。 / p>

以下是一些维基百科文章,可以阅读更多相关内容:

答案 3 :(得分:0)

根据维基百科:

  

shell脚本是一个旨在由Unix运行的计算机程序   shell,命令行解释器。[1]各种方言的贝壳   脚本被认为是脚本语言。

来源:https://en.wikipedia.org/wiki/Shell_script

  

Bash是一个通常在文本窗口中运行的命令处理器,   用户键入导致操作的命令。 Bash也可以阅读   来自文件的命令,称为脚本。

换句话说,bash只是一个shell(一个流行的),而shell脚本是一个可以由shell解释的脚本。以下列出了好奇心的shell:https://en.wikipedia.org/wiki/Unix_shell#Shell_categories