1 PATH環境變數
2 重新導向的使用
0 標註輸入 預設鍵盤輸入,可以用其他內容來重新導向1 標準輸出 螢幕上的正確輸出2 錯誤輸出 螢幕上的錯誤輸出&> 重新導向全部輸出重新導向符號有:> >> 2>&1 表示將錯誤的輸出重新導向為標準輸出例1find /etc/ -name "*.conf" >> /tmp/file1 2>&1例2使用cat命令來示範重新導向功能cat > /tmp/file.txt << endfhello worldendf
3 注意指令碼中的特殊字元
4 ``與$()執行命令
5 變數調用的標準方式是 ${VARNAME},通常花括弧被省略了
6 seq命令產生序列
7 $(())和$[]命令用於計算
8 for迴圈
for VAR in LIST;do COMMONDdone
9 指令碼調式使用bash -x選項
10 位置變數
$0 表示指令碼名 $# 傳遞的參數個數 $* 全部參數,是一次全取出來 $@ 也表全部參數,但是一個一個的取
11 命令的退出狀態 $? ;0表示正確,非0表示錯誤 exit 數字 可以在指令碼中指定退出狀態
12 指令碼中的判斷 [ EXPRESSION ]或則test命令 用來做條件判斷 判斷的運算子有很多: 1)整數比較 -eq -ne -gt -ge -lt -le
2)字串比較 == 等
!= 不等
3)字串求值 -z 字串為空白 -n 字串不為空白
4)檔案的比較 -b 塊檔案 -c 字元檔案 -d 目錄 -e 檔案存在 -f 常規檔案 -L 符號連結檔案 -r 有讀許可權的檔案 -w 有寫入權限的檔案 -x 有執行許可權的檔案 -s 檔案大小大於零 -ef FILE1與FILE2的裝置和索引節點編號相同 -nt FILE1的修改日期比FILE2晚 -ot FILE1的修改日期比FILE2早
5)邏輯運算 && 與 || 或
13 條件結構 1)if語句
if CONDITION1;then STATeMENTelif CONDITION2;then STATEMENTelse STATEMENTfi
2)case語句
case VALUE in PATTERN1) STATEMENT ... STATEMENT ;; PATTERN2) STATEMENT ... STATEMENT ;; PATTERN3|PATTERN4) STATEMENT ... STATEMENT ;; [a-z]) STATEMENT ;; [0-9]) STATEMENT ;; *) STATEMENT ;; esac
14 while迴圈語句
while CONDITIONdo STATEMENTdone
此外,還有個常用的按行讀取的用法:
while read CONDITIONdo STATEMENTdone < INPUTSTREAM
15 關於環境變數 shell和指令碼使用變數儲存資料,某些變數可以與其內容一起傳遞到子進程,這些特殊的變數稱為環境變數。通過export命令將變數標記為環境變數。
環境變數的一個使用情境就是使用者登陸後初始化shell環境。通常執行的shell環境初始化指令碼有(執行的順序由上往下): /etc/profile #系統內容變數 |__ /etc/profile.d ~/.bash_profile #使用者環境變數 |__ ~/.bashrc |__ /etc/bashrc
登陸指令碼一般分兩種類型:設定檔和rc檔案。 設定檔用於設定和匯出環境變數,以及運行僅應在登陸後啟動並執行命令; rc檔案(如,/etc/bashrc)用於運行命令,設定別名,定義函數以及無法匯出到子shell的其他設定。 通常,設定檔僅在登陸shell中執行,而每次建立shell時執行rc檔案。
16 別名alias
#產生別名alias NEWCMD='CMDS'#取消別名unalias NEWCMD
17 使用函數 函數是一種隔離程式碼片段的方法,可以用來重複調用而無需重新編寫同樣功能的代碼
funcname() { STATEMENTS}