批处理文件和Bash文件有什么区别?

40

Batch和Bash之间有哪些区别?

它们是如何被使用的?


4
@MichaelFreidgeim,您的链接已损坏。该网址为[http://www.xoogu.com/2012/differences-between-windows-batch-and-linux-bash-shell-script-syntax/](http://www.xoogu.com/2012/differences-between-windows-batch-and-linux-bash-shell-script-syntax/)。 - DC.Azndj
4个回答

40

"批处理文件"通常是指包含一系列MSDOS shell命令的文本文件。Bash是一种Unix Shell,通常类似于"批处理文件"的术语对于Unix来说是"Shell脚本"或者简单地称为"脚本"。

我从未听说过"Bash文件"这个术语,尽管它有些逻辑上的合理性,通常情况下会使用"Shell脚本"或"Bash脚本"代替。


1
还有人在使用MS-DOS吗?我认为你应该写"Windows命令",因为现在的Windows绝对不再包含MS-DOS命令(即16位)。 - user330315
9
Windows命令行Shell命令是在基于MSDOS的解释器中运行的,而MSDOS又是基于CP/M的。还有人在使用Unix吗?当然没有了。他们正在使用Linux和像Mac OS X这样的Unix衍生产品。但你没有纠正我对"Unix"的使用,是吧? ;) - Breton
@a_horse_with_no_name 当然,如果你想完全更新你的实践,你应该使用Windows脚本宿主而不是批处理文件。这种情况下,你的文件将被称为“脚本” :) - Breton

11

“Batch”可以表示几种不同的意思(忽略一般的非技术定义):

  • 包含MS-DOS或Windows命令行脚本的文件。这些文件名以".BAT"结尾用于DOS或Windows,以".CMD"结尾用于Windows。

  • Linux/Unix也有一个batch命令。当系统负载低于阈值时,该命令被用于安排进程的执行时间。

  • 泛指一组作为一个群体运行的进程。这个定义可能更多地与使用打孔卡等旧系统有关。

来自man bash

Bash是一个与sh兼容的命令语言解释器,它执行从标准输入或文件读取的命令。Bash还结合了Korn和C Shell(ksh和csh)的有用特性。

它通常在Linux或Unix(包括OS X)系统上使用,但也可以在其他系统上使用,包括Windows。


7

Bash是Unix/Linux中的一种shell。批处理文件(或批处理作业)通常指包含定期执行的命令列表的文件(例如,每日、每周等)。您可以使用任何语言编写批处理作业(例如,Python、PHP、Perl、Shell脚本)。Bash shell还支持脚本编写,因此您也可以使用Bash脚本编写批处理文件。

这是一个大致的概念,没有涉及太多细节。 :)


错误,通常不叫批处理作业或批处理文件,而是称为cron作业或cron表。 - Breton
没错,它们通常是由cron调度的,因此被称为cron jobs。但人们也会松散地称它们为batch文件。很多时候,batch文件指的是Windows中包含DOS命令列表的文件。然而,现在我认为它们已经不太常用了。 - Barun

4

Bash是一种Unix shell。Bash文件是批处理文件,但反过来不成立。批处理文件是一个包含一系列命令的文本文件。


http://en.wikipedia.org/wiki/Batch_file http://en.wikipedia.org/wiki/Bash_(Unix_shell) - tkalve

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接