Bash 基礎知識系列 #1:創建並運行你的第一個 Bash Shell 腳本
這是一個新教程系列的開始。在這一篇中,你將熟悉 bash 腳本。
本系列假定你對 Linux 終端比較熟悉。你不必精通,但了解基礎知識會很好。我建議閱讀終端基礎知識系列。
這個系列適合誰?
如果你是一名將 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+C
或 Ctrl+D
鍵退出 cat
命令的追加模式。現在,如果你查看腳本 hellow_world.sh
的內容,你應該只看到一行。
關鍵時刻來了。你已經創建了第一個 Shell 腳本。是時候 運行 Shell 腳本 了。
這樣做:
bash hello_world.sh
echo
命令只是顯示提供給它的任何內容。在這種情況下,Shell 腳本應該在屏幕上輸出 「Hello World」。
恭喜! 你剛剛成功運行了第一個 Shell 腳本。多麼酷啊!
以下是上述所有命令的重放,供你參考。
另一種運行 Shell 腳本的方法
大多數時候,你將以這種方式運行 Shell 腳本:
./hello_world.sh
這將產生錯誤,因為作為腳本的文件還沒有執行許可權。
bash: ./hello_world.sh: Permission denied
給腳本添加執行許可權:
chmod u+x hello-world.sh
現在,你可以像這樣運行它:
./hello_world.sh
因此,你學習了兩種運行 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 來運行腳本。
? 如果你覺得在終端中編輯腳本文件不方便,作為桌面 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive