1.什麼是shell
2. 還是hello world程序
3. shell中的變量
3.1 系統變量
3.2 用戶定義變量
3.2.1 用戶定義變量規則
3.2.3 shell如何使用變量
3.2.3 全局變量 vs 局部變量
4. shell編程中的控制結構
4.1 條件判定
4.1.1 簡單條件判定
4.1.2 組合判定
4.2 if - else
4.3 for
4.4 while
4.5 case
5. shell中的函數
5.1 函數聲明和定義
5.2 函數調用
6. shell腳本調試
6.1 萬能的echo
6.2 兩個命令
7. 參考資料及shell腳本下載
shell扮演者操作系統內核和用戶的中間人的角色,用戶通過鍵入shell command,然後shell通過解析用戶輸入,然後將請求轉發給操作系統的內核進行處理。
1. 一個系統可以存在多個shell,可以通過cat /etc/shells命令查看系統中安裝的shell,不同的shell可能支持的命令語法是不相同的。 2. 可以通過echo $SHELL查看當前使用的shell
首先使用vim編輯器(或者是linux下任意的文本編輯器)編寫文件helloshell.sh(沒有必要使用.sh後綴名):
#!/bin/bash
echo "hello shell";保存上面的文件,增加該文件的執行權限:
xuqiang@Ubuntu:~/shell$ sudo chmod +x ./helloshell.sh
運行該shell程序:
xuqiang@ubuntu:~/shell$ ./helloshell.sh
hello shell通過上面的程序沒有什麼實際的含義,但是通過第一個shell程序了解shell程序的執行過程。
linnux下的shell腳本中的變量分為“系統變量”和“用戶自定義變量”,可以通過set命令查看那系統變量。
xuqiang@ubuntu:~/shell$ set... 略去內容
xuqiang@ubuntu:~/shell$ echo $HOME /home/xuqiangshell中用戶可以自定義變量,shell中的變量是沒有數據類型的,shell將根據當前的環境自動進行轉化,例如:
msg="hello world"
上面的語句定義變量msg,並設置初始值是為hello world。
Tip 1. 需要注意的是定義變量時,=兩邊是沒有空格的
3.2.1 用戶定義變量規則
變量必須是以字母開頭,後跟字母或者是下劃線,變量的命名是大小寫敏感的,並且可以定義一個變量的值為NULL。
xuqiang@ubuntu:~/shell$ vech= xuqiang@ubuntu:~/shell$ echo $vec3.2.2 shell中如何使用變量
如果想要得到shell變量中存儲的值的話,需要在變量名前增加$符號,例如:
xuqiang@ubuntu:~/shell$ vech="value" xuqiang@ubuntu:~/shell$ echo $vech # this will print the value of vech value xuqiang@ubuntu:~/shell$ echo vech # this will print the string "vech" vech3.2.3 全局變量 vs 局部變量
默認在shell中編寫的變量全部是局部變量,如果重新打開console的話,那麼這些變量將全部丟失,全局的變量可以寫在文件~/.bashrc文件。