shell結構大體是由設定變量、內置命令、shell的語法結構、函數組成。
使用實例說明:test.sh
#!/bin/bash #說明使用/bin/bash作為這個腳本的解釋器 #定義一個函數 function my_fun () { echo "Hello, $1,today is $2" } #定義連個變量 name=$1 today=`date` #函數調用 my_fun "$name" "$today"
上面的這個腳本要想運行還需要做一些操作 ,首先給予執行權限
chmod +x test.sh
然後執行
./test.sh john
輸出
Hello, john,today is Tue Jun 1 14:51:46 CST 2010
父shell和子shell
在執行script之 前,身處的環境就是父shell。執行script之時,父shell根據#!/bin/bash, fork出來一個新的shell環境,然後在子shell中執行,執行完畢後子shell結束 ,任然回到父shell中,這樣不會影響到父shell的環境。
login shell 和non-login shell
這張圖片是login shell的流程,當是non-login shell時,只執行方框中的 標注的部分。由這張圖我們可以知道,在如下幾種情況下,執行的流程。
登陸(login)
/etc/profile
~/.bash_profile
注銷 (logout)
~/.bash_logout
執行新shell,分成兩種情況
1. 執行交互式的shell
~/.bashrc
/etc/bashrc
2.執行非交互 式的shell,比如執行script
會檢查 BASH_ENV 變量的內容,如果有定義 ,則執行