2015-02-24 186 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