Linux 使用Bash和Shell脚本有什么区别
我已经为UNIX和Windows编写脚本将近3年了。我一直对这两个术语感到困惑,有一段时间我认为bash脚本是windows cmd脚本,shell脚本是UNIX脚本,但我知道这是不正确的。那么这两个术语之间的区别是什么:BASH和Shell脚本 就像Windows、Linux和MacOSX是操作系统一样,奥迪、福特或雪佛兰是汽车:Windows的cmd.exe、BASH、ZSH、CSH、TCSH、Korn Shell、Bourne Shell……只是不同种类的外壳 一般来说,“shell”是一个类比,用于设计用户界面,以访问系统的“核心”。因此,在本例中,shell是用于操作系统的文本界面(也称为命令行界面,又称CLI) 现在,当您谈到“shell脚本”时,它只是使用为用户界面开发的语言来自动化该系统上的任务。目前有一些面向图形的脚本(如Office的宏),但大多数情况下都是关于创建“批处理”文件(.bat在Dos/Windows上)或unix世界中所谓的“shell脚本” 以下是一些维基百科文章,可以阅读更多关于它的内容:Linux 使用Bash和Shell脚本有什么区别,linux,bash,shell,cmd,scripting,Linux,Bash,Shell,Cmd,Scripting,我已经为UNIX和Windows编写脚本将近3年了。我一直对这两个术语感到困惑,有一段时间我认为bash脚本是windows cmd脚本,shell脚本是UNIX脚本,但我知道这是不正确的。那么这两个术语之间的区别是什么:BASH和Shell脚本 就像Windows、Linux和MacOSX是操作系统一样,奥迪、福特或雪佛兰是汽车:Windows的cmd.exe、BASH、ZSH、CSH、TCSH、Korn Shell、Bourne Shell……只是不同种类的外壳 一般来说,“shell”是一
#!/bin/bash
并且可能取决于Bash实现的特性,而不是bourneshell实现的特性
(在某些操作系统上,/bin/sh
可能是与/bin/bash
相同的命令)
并非所有Unix shell都基于Bourne shell。特别是,csh
及其派生的tcsh
在很大程度上与伯恩衍生的shell不兼容
Bash与Windows
cmd
脚本几乎没有什么关系,只是Bash和cmd.exe都是命令解释器。根据维基百科:
shell脚本是一种设计由Unix运行的计算机程序
shell,一个命令行解释器。[1]shell的各种方言
脚本被认为是脚本语言
资料来源:
Bash是一个命令处理器,通常在文本窗口中运行,
其中,用户键入导致操作的命令。Bash也可以阅读
来自文件(称为脚本)的命令
换句话说,bash只是一个shell(流行的shell),shell脚本是一个可以由shell解释的脚本。下面是一个shell列表供您参考:shell脚本是可以由系统shell运行的任何脚本的通用名称
现在,shell是一个接受命令并执行它们的程序——类似于REPL/command解释器sh
是一个shell。bash
、fish
、zsh
等也是如此
cmd
有时被称为Windows shell,但Windows shell
是Windows UI的正式名称。微软称之为命令解释器
(更多名称混淆)
cmd
和msdos
的脚本通常称为“批处理脚本”
所以在*nix领域,通常是:“bash”执行“shell脚本”。在windows环境中,“cmd”(dos提示符)执行“批处理脚本”。一个“shell脚本”是一个描述。。嗯,可以解释/运行的“一些脚本”。通常是贝壳。是shell的一个特定实现,是“sh”派生的,具有许多特性。从技术上讲,“shell脚本”可以用于不同类型的shell;但这种情况通常很少见;或者用诸如“批处理文件”(对于cmd.exe“shell脚本”)或“powershell”之类的指定来表示。因此,基本上,有不同类型的shell,bash是shell的一种类型?是的。这是一个相当好的总结。你可能把windows cmd脚本的“bash”和“batch”混淆了。@glennjackman没有。我知道批处理是在windows上运行的脚本,它们有扩展名.bat。我只是想问一下bash和shell之间的区别:)shell脚本是您用bash可以解释的语言编写的脚本→ 不,这是你用SHELL可以解释的语言写的,Bash只是SHELL中的一个。谢谢你的评论!我将对其进行编辑以使其更合适。如果有人能解释为什么-1
?我相信我的描述非常准确。那么“cmd”也被认为是shell类型吗?我们可以说“批处理”脚本是“windows shell脚本”吗?@MohamedKhaled:是的,cmd
可以被视为shell。“shell”一词通常用于Unix shell,但PowerShell是特定于Windows的。
#!/bin/bash