Linux

shell腳本是一種程式語言嗎?

  • December 9, 2019

這是我在 UNIX 中的第一個問題:

兩天前我開始使用 shell 腳本。

但我有一個問題:shell 腳本是針對特定 shell 的特殊程式語言嗎?

如果您知道任何命令,例如ls,您鍵入它,然後按輸入鍵,shell 將知道該程序 (ls) 在哪裡,呼叫它,並向您顯示結果。這是“非腳本”shell 用法。

但是,如果您按順序排列幾個這樣的命令,例如 A、B、C、D,然後將其(序列)放入執行檔中,您就得到了一個程序。該程序具有名稱和位置,因此可以引用和呼叫;它有程式碼,因此它可以由 CPU 一次執行一個命令。

(該程序沒有被編譯——例如,C 原始碼會被編譯——這使它成為一個腳本。但它仍然是一個程序。)

也就是說,在某些方面,此時您已經在程式,因為您正在指示電腦要做什麼。

此外,在一個非常基礎的層面上,你也在使用一種程式語言,因為你不能只輸入任何東西(並期望它能夠工作);同時,無論您鍵入什麼,您都會從電腦中獲得與您所寫內容完全對應的活動。

有規則你應該怎麼說事情,也有規則電腦將如何對這些事情做出反應。

也就是說,通過“程式”,您通常會聯想到更多的表達能力,而不僅僅是將命令堆疊在一起。至少,您想要分支 ( if ... then ... else)、迭代(循環:whilefor等),可能還有其他一些東西。但這沒關係,因為腳本語言有這些東西等等。

是的,shell 有不同的語言,但有些可能在很大程度上重疊,因為約定(為什麼要改變一種好的表達方式?),或者與早期版本(或某些標準)兼容。

Bash 是一種scripting語言:

來自維基百科

腳本語言或腳本語言是一種程式語言,它支持編寫腳本、為軟體環境編寫的程序,這些程序可以自動執行任務,這些任務也可以由人類操作員一個接一個地執行。

$$ … $$ 腳本一詞通常保留給小程序(最多幾千行程式碼)。

腳本通常又快又髒。比如說,一個讓你的生活更輕鬆的 bash 腳本。而“程式”語言意味著要經過深思熟慮和深思熟慮。“程式”語言的特點是它們通常更快,並且可以根據需要提供對低級事物的更多控制。

“程式”語言通常用於程式碼將存在很長時間的場景。如果您想快速編寫一些東西,然後再也不使用它,那麼“腳本”語言就是您想要的。

你可以在這裡找到一篇有趣的文章。

引用自:https://unix.stackexchange.com/questions/53839