shell程式的基本組成結構
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 變量的内容,如果有定義,則執行
本文轉自 justiceplus 51CTO部落格,原文連結:http://blog.51cto.com/johnwang/324784,如需轉載請自行聯系原作者