Linux中國

Bash 基礎知識系列 #1:創建並運行你的第一個 Bash Shell 腳本

這是一個新教程系列的開始。在這一篇中,你將熟悉 bash 腳本

本系列假定你對 Linux 終端比較熟悉。你不必精通,但了解基礎知識會很好。我建議閱讀終端基礎知識系列。

這個系列適合誰?

任何想開始學習 Bash Shell 腳本的人。

如果你是一名將 Shell 腳本作為課程的一部分的學生,那麼本系列適合你。

如果你是普通的桌面 Linux 用戶,本系列將幫助你了解在探索各種軟體和修復程序時遇到的大多數 Shell 腳本。你還可以使用它來自動執行一些常見的重複性任務。

到本 Bash 基礎系列結束時,你應該能夠編寫簡單到中等水平的 Bash 腳本。

該系列的所有章節都有示例練習,你可以邊做邊學。

? 你將在這裡學習 Bash Shell 腳本。雖然還有語法基本相同的其他 Shell,但它們的行為在某些方面仍然存在差異。Bash 是最常見和通用的 Shell,因此學習 Shell 腳本從 Bash 開始吧。

你的第一個 Shell 腳本:Hello World!

打開一個終端。現在 創建一個新目錄 來保存你將在本系列中創建的所有腳本:

mkdir bash_scripts

現在 切換到這個新創建的目錄

cd bash_scripts

讓我們在這裡 創建一個新文件

touch hello_world.sh

現在,編輯該文件 並向其中添加一行 echo Hello World。你可以使用 cat 命令的追加模式(使用 >)執行此操作:

[abhishek@itsfoss]:~/bash_scripts$ cat > hello_world.sh 
echo Hello World
^C

我更喜歡在使用 cat 命令添加文本時添加新行。

Ctrl+CCtrl+D 鍵退出 cat 命令的追加模式。現在,如果你查看腳本 hellow_world.sh 的內容,你應該只看到一行。

Creating first shell script

關鍵時刻來了。你已經創建了第一個 Shell 腳本。是時候 運行 Shell 腳本 了。

這樣做:

bash hello_world.sh

echo 命令只是顯示提供給它的任何內容。在這種情況下,Shell 腳本應該在屏幕上輸出 「Hello World」。

Run first shell script

恭喜! 你剛剛成功運行了第一個 Shell 腳本。多麼酷啊!

以下是上述所有命令的重放,供你參考。

另一種運行 Shell 腳本的方法

大多數時候,你將以這種方式運行 Shell 腳本:

./hello_world.sh

這將產生錯誤,因為作為腳本的文件還沒有執行許可權。

bash: ./hello_world.sh: Permission denied

給腳本添加執行許可權:

chmod u+x hello-world.sh

現在,你可以像這樣運行它:

./hello_world.sh

Run shell scripts

因此,你學習了兩種運行 Shell 腳本的方法。是時候讓我們將注意力轉回 Bash 了。

把你的 Shell 腳本變成 Bash 腳本

感到困惑? 實際上,Linux 中有幾種可用的 Shell。Bash、Ksh、Csh、Zsh 等等。其中,Bash 是最受歡迎的,幾乎所有發行版都默認安裝了它。

Shell 是一個解釋器。它接受並運行 Linux 命令。雖然大多數 Shell 的語法保持不變,但它們的行為在某些點上可能有所不同。例如,條件邏輯中括弧的處理。

這就是為什麼告訴系統使用哪個 Shell 來解釋腳本很重要。

當你使用 bash hello_world.sh 時,你明確地使用了 Bash 解釋器。

但是當你以這種方式運行 Shell 腳本時:

./hello_world.sh

系統將使用你當前使用的任何 Shell 來運行腳本。

為避免由於不同的語法處理而導致不必要的意外,你應該明確告訴系統它是哪個 shell 腳本。

怎麼做? 使用釋伴(#!)。通常,# 用於 Shell 腳本中的注釋。但是,如果 #! 用作程序的第一行,它的特殊用途是告訴系統使用哪個 Shell。

因此,更改 hello_world.sh 的內容,使其看起來像這樣:

#!/bin/bash

echo Hello World

現在,你可以像往常一樣運行 Shell 腳本,因為你知道系統將使用 Bash Shell 來運行腳本。

Run bash shell script

? 如果你覺得在終端中編輯腳本文件不方便,作為桌面 Linux 用戶,你可以使用 Gedit 或其他 GUI 文本編輯器編寫腳本並在終端中運行。

?️ 練習時間

是時候練習你學到的東西了。以下是該級別的一些基本練習:

  • 編寫一個列印 「Hello Everyone」 的 Bash 腳本
  • 編寫一個顯示當前工作目錄的 Bash 腳本(提示:使用 pwd 命令)
  • 編寫一個 Shell 腳本,使用以下列方式列印你的用戶名:「My name is XYZ」(提示:使用 $USER

答案可以在社區論壇的 這個專門的帖子 中討論。

最後一個練習使用 $USER。這是一個列印用戶名的特殊變數。

這就引出了 Bash 基礎系列下一章的主題:變數。

請繼續關注下面的內容。

(題圖:MJ/c8f6458a-84fe-4f77-9a9c-f82fef611935)

via: https://itsfoss.com/create-bash-script/

作者:Abhishek Prakash 選題:lkxed 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國