Bash 基礎知識系列 #1:創建并運行你的第一個 Bash Shell 腳本
本系列假定你對 Linux 終端比較熟悉。你不必精通,但了解基礎知識會很好。我建議閱讀終端基礎知識系列。
這個系列適合誰?
任何想開始學習 Bash Shell 腳本的人。
如果你是一名將 Shell 腳本作為課程的一部分的學生,那么本系列適合你。
如果你是普通的桌面 Linux 用戶,本系列將幫助你了解在探索各種軟件和修復程序時遇到的大多數 Shell 腳本。你還可以使用它來自動執行一些常見的重復性任務。
到本 Bash 基礎系列結束時,你應該能夠編寫簡單到中等水平的 Bash 腳本。
該系列的所有章節都有示例練習,你可以邊做邊學。
?? 你將在這里學習 Bash Shell 腳本。雖然還有語法基本相同的其他 Shell,但它們的行為在某些方面仍然存在差異。Bash 是最常見和通用的 Shell,因此學習 Shell 腳本從 Bash 開始吧。
你的第一個 Shell 腳本:Hello World!
打開一個終端?,F在 創建一個新目錄 來保存你將在本系列中創建的所有腳本:
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
的內容,你應該只看到一行。
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 基礎系列下一章的主題:變量。
請繼續關注下面的內容。