初識Shell
shell是一個命令行解釋器,它爲用戶提供了一個向Linux內核發送請求以便運行程序的界面系統級程序,用戶可以用Shell來啓動、掛起、停止甚至是編寫一些程序。
Shell腳本
Shell腳本(shell script)是一種shell編寫的腳本程序。
Shell環境
Linux的Shell種類很多,常見的有:
- Bourne Shell(/usr/bin/sh或/bin/sh)
- C Shell(/usr/bin/csh)
- K Shell(/usr/bin/ksh)
- Bourne Again Shell(/bin/bash)
- …
Bourne Again Shell由於易用和免費,Bash 在日常工作中被廣泛使用。同時,Bash 也是大多數Linux 系統默認的 Shell。
在一般情況下,人們並不區分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同樣也可以改爲 #!/bin/bash。(兩者兼容)
#! 告訴系統其後路徑所指定的程序即是解釋此腳本文件的 Shell 程序。
Hello World
新建一個文件test.sh,擴展名爲sh(代表shell,但是並不影響執行,只是爲了見名知意),用vim編輯器編寫如下代碼:
#!/bin/bash # #!是一個約定的標記,它告訴系統這個腳本需要什麼解釋器來執行,即使用哪一種 Shell。
echo "Hello World !" #echo 命令用於向窗口輸出文本。
運行Shell腳本
1、作爲可執行文件
將test.sh保存,並cd到響應的目錄:
[admin@localhost tmp]$ chmod 755 test.sh #使腳本具有執行權限
[admin@localhost tmp]$ ./test.sh #執行腳本
hello wrold!
注意:一定要寫 ./test.sh
,而不是 test.sh
,運行其它二進制的程序也一樣,直接寫test.sh
,linux 系統會去 PATH 裏尋找有沒有叫 test.sh
的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 裏,你的當前目錄通常不在 PATH 裏,所以寫成 test.sh
是會找不到命令的,要用 ./test.sh
告訴系統說,就在當前目錄找。
2、作爲解釋器參數
[admin@localhost tmp]$ /bin/sh test.sh #執行腳本
hello wrold!
這種方式運行的腳本,不需要在第一行指定解釋器信息。