BASH初學者指南 - 第1部分 - Hello World

互聯網上有大量的指南介紹瞭如何使用BASH創建Shell腳本,本指南旨在給出一個稍微不同的旋轉,因為它是由一個shell腳本經驗很少的人編寫的。

現在你可能會認為這是一個愚蠢的想法,但是我發現有些指南跟你說話,就好像你已經是專家了,其他的指導者花了很長時間去追求。

雖然我的LINUX / UNIX shell腳本經驗有限,但我是一位貿易軟件開發人員,我很喜歡腳本語言,如PERL,PHP和VBScript。

本指南的要點是,你將學習,因為我學習和我拿起的任何信息,我會傳遞給你。

入門

顯然有很多理論可以直接傳遞給你,比如描述不同類型的shell以及使用BASH而不是KSH和CSH的優勢。

大多數人在學習新東西的時候都想跳進來,先從一些實際的課程開始,並且考慮到這一點,我不會對現在不重要的瑣事感到厭煩。

所有你需要遵循本指南是一個文本編輯器和運行BASH(大多數Linux發行版的默認shell)的終端。

文本編輯器

我已閱讀的其他指南建議您需要包含命令顏色編碼的文本編輯器,推薦的編輯器是VIMEMACS

顏色編碼是很好的,因為它會在鍵入時突出顯示命令,但對於絕對的初學者,您可以在開始幾週內學習VIM和EMACS,而無需編寫一行代碼。

除了這兩個我更喜歡EMACS,但說實話我更喜歡使用簡單的編輯器,如nano ,gedit或leafpad。

如果您正在自己的計算機上編寫腳本,並且您知道您始終可以訪問圖形環境,那麼您可以選擇最適合您的編輯器,它可以是圖形編輯器(如GEdit),也可以是直接在終端中運行的編輯器如nano或vim。

出於本指南的目的,我將使用nano,因為它在本機上安裝在大多數Linux發行版上,因此您可能有權訪問它。

打開終端窗口

如果您正在使用帶有Linux Mint或Ubuntu等圖形桌面的Linux發行版,則可以通過按CTRL + ALT + T打開一個終端窗口。

在哪裡放置你的腳本

為了本教程的目的,您可以將腳本放在您的主文件夾下的文件夾中。

在終端窗口中,通過輸入以下命令確保您位於主文件夾中:

cd〜

cd命令代表更改目錄,代字號(〜)是您的主文件夾的快捷方式。

您可以通過輸入以下命令來檢查您是否在正確的位置:

PWD

pwd命令會告訴你你目前的工作目錄(你在目錄樹中的位置)。 在我的情況下,它返回/ home /加里。

現在顯然你不想將你的腳本直接放入主文件夾,所以通過輸入以下命令創建一個名為腳本的文件夾。

mkdir腳本

通過輸入以下命令更改到新腳本文件夾中:

CD腳本

你的第一個腳本

學習如何編程以使第一個程序簡單地輸出單詞“Hello World”是習慣性的。

從您的腳本文件夾中輸入以下命令:

nano helloworld.sh

現在將下面的代碼輸入到nano窗口中。

#!/ bin / bash echo“hello world”

按下CTRL + O保存文件,按CTRL + X退出nano。

腳本本身組成如下:

#!/ bin / bash需要包含在您編寫的所有腳本的頂部,因為它可以讓解釋器和操作系統知道如何處理文件。 基本上只記得把它放進去,忘記你為什麼這樣做。

第二行有一個叫做echo的單一命令,它輸出緊跟其後的文本。

請注意,如果您想要顯示多個單詞,則需要在單詞旁邊使用雙引號(“)。

您現在可以通過鍵入以下命令來運行該腳本:

sh helloworld.sh

應出現“你好世界”這個詞。

運行腳本的另一種方式如下所示:

./helloworld.sh

如果你在終端上直接運行該命令,你將會遇到權限錯誤。

要授予以這種方式運行腳本的權限,請鍵入以下內容:

sudo chmod + x helloworld.sh

那麼究竟發生了什麼? 為什麼你能夠在不更改權限的情況下運行sh helloworld.sh,但運行./helloworld.sh會導致問題?

第一種方法加載了將helloworld.sh作為輸入的bash解釋器,併計算出如何處理它。 bash解釋器已經有權運行,只需要在腳本中運行命令。

第二種方法可讓操作系統確定如何處理腳本,因此需要一個可執行位才能執行。

上面的腳本沒問題,但是如果你想顯示引號會發生什麼?

有多種方法可以實現這一點。 例如,你可以在引號前加一個反斜杠,如下所示:

迴聲\“你好世界\”

這將產生輸出“你好世界”。

等一下,如果你想顯示“你好世界”怎麼辦?

那麼你可以逃脫逃生角色

echo \\“\”hello world \\“\”

這將產生輸出\“你好世界\”。

現在我知道你在想什麼。 但我真的想顯示\\“\”你好世界\“”\“

對所有這些轉義字符使用echo可能會非常愚蠢。 有一個可以使用的替代命令叫做printf。

例如:

printf'%s \ n''\\“\”hello world \\“\”'

請注意,我們要顯示的文本位於單引號之間。 printf命令輸出腳本中的文本。 %s表示它將顯示一個字符串,\ n輸出一個新行。

概要

我們在第一部分中沒有涉及太多的內容,但希望您的第一個腳本能夠正常工作。

在下一部分中,我們將著眼於改善hello世界腳本以顯示不同顏色的文本,接受並處理輸入參數,變量和註釋代碼。