輸入一些代碼:
#!/bin/bash
echo "Hello World !"
“#!” 是一個約定的標記,它告訴系統這個腳本需要什麼解釋器來執行,即使用哪一種Shell。echo命令用於向窗口輸出文本。運行Shell腳本有兩種方法。
作爲可執行程序
將上面的代碼保存爲test.sh,並 cd 到相應目錄:
chmod +x ./test.sh #使腳本具有執行權限
./test.sh #執行腳本
注意,一定要寫成./test.sh,而不是test.sh。運行其它二進制的程序也一樣,直接寫test.sh,linux系統會去PATH裏尋找有沒有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH裏,你的當前目錄通常不在PATH裏,所以寫成test.sh是會找不到命令的,要用./test.sh告訴系統說,就在當前目錄找。通過這種方式運行bash腳本,第一行一定要寫對,好讓系統查找到正確的解釋器。
這裏的"系統",其實就是shell這個應用程序(想象一下Windows Explorer),但我故意寫成系統,是方便理解,既然這個系統就是指shell,那麼一個使用/bin/sh作爲解釋器的腳本是不是可以省去第一行呢?是的。
作爲解釋器參數
這種運行方式是,直接運行解釋器,其參數就是shell腳本的文件名,如:
/bin/sh test.sh
/bin/php test.php
這種方式運行的腳本,不需要在第一行指定解釋器信息,寫了也沒用。再看一個例子。下面的腳本使用 read 命令從 stdin 獲取輸入並賦值給 PERSON 變量,最後在 stdout 上輸出:
#!/bin/bash
# Script follows here:
echo "What is your name?"
read PERSON
echo "Hello, $PERSON"
運行腳本:
chmod +x ./test.sh
$./test.sh
What is your name?
david
Hello, david
$