2015-02-24 187 views
30

TL; DR;什么是shell脚本?它是一种编程语言/我们在shell脚本中使用了哪种编程语言?bash是一种编程语言吗?


免责声明:有点offtopic
所以bash的代表的Bourne Again Shell的。一个(Unix)Shell是一个命令行用户界面,或者也许可以称它为一个解释器(?)

因此,我正在填写一份新作业的应用程序,并要求您获得不同编程语言的体验,然后底部有这个盒子其他经验 - 我开始打字python 2.7,powershell,bas ...等等! bash不是一种编程语言 - 它是一个可以执行shell脚本的控制台...所以...呃....噢,我的上帝,我不知道!

+3

FWIW,请**做**包括Bash作为编程语言技能,如果你有它。毕竟,[脚本语言](https://en.wikipedia.org/wiki/Scripting_language)是编程语言。但是,从技术上讲,如果你知道足够的脚本语言,如果文档允许,你可以单独列出它们。在多年来进行了十几次基于Linux的求职面试之后,没有一位面试官问我为什么我将Bash列为编程语言。如果有的话,他们也想看到列表中的sed和awk。 – 2016-10-29 20:06:50

回答

35

我们可以说,它是一种编程语言。

根据man bash,Bash是一个“sh兼容的命令语言”。然后,我们可以说“命令语言”是“用户与操作系统或应用程序通信的编程语言”。

man bash来自:

说明

Bash是兼容sh的命令语言解释器执行从标准输入或从文件中读取的命令。 Bash 还集成了Korn和C shell的有用功能(ksh和 csh)。

http://www.gnu.org/software/bash/

Bash是GNU项目的外壳。 Bash再次爆出。 Bash 是一个兼容sh的外壳,融合了Korn shell(ksh)和C shell(csh)的 的有用功能。它旨在符合IEEE POSIX P1003.2/ISO 9945.2外壳和工具标准的 。它提供了 功能改进优于sh编程和交互 使用。另外,大多数sh脚本可以由Bash运行而不需要修改 。

和UNIX外壳是... http://en.wikipedia.org/wiki/Unix_shell

UNIX外壳是一个命令行解释器或外壳提供用于Unix操作系统和用于 类Unix一个 传统用户界面系统。用户通过 输入命令作为文本输入命令行解释器执行 或通过创建一个或多个此类命令的文本脚本来指挥计算机的操作。用户 通常使用终端仿真程序与Unix shell进行交互,但是,通过串行硬件连接或网络会话进行的直接操作对于服务器系统来说很常见。

+1

所以bash是一种语言 - 但它也是一个shell ..?这很混乱,不是吗? – Brettetete 2015-02-24 10:53:01

+3

@Brettetete你也可以在交互模式下启动Python,它的行为就像一个shell。或JavaScript或Ruby或任何脚本语言。 – 2015-02-24 10:53:40

+0

@Zeeker ohhhh ...一分钱已经下降。这很有意义 – Brettetete 2015-02-24 10:55:32

6

bash肯定是是一种编程语言,专门用于unix/linux shell脚本。它是完整的,所以你可以(理论上)在Bash中编写任何程序。

+1

同意 - 这是解决你如何定义编程语言的所有语义。它是否具有专门的语法,数据处理/结构,测试结构,I/O例程等... – 2015-02-24 10:57:18

+0

它不是一种编程语言,它就像批处理是一种脚本语言 – 2015-02-24 10:57:35

+2

合格的“它是所有的语义解决你如何定义编程语言“是的,它是一个外壳,但与外壳相关联是一组规则和语法,允许你与外壳交互。 “男人bash”包含最多。所以,是的,它是一个shell,是的,它是一种编程语言,旨在允许与shell进行交互。 – 2015-02-24 11:00:30