1 PATH環境變量
2 重定向的使用
0 標注輸入 默認鍵盤輸入,可以用其他內容來重定向 1 標准輸出 屏幕上的正確輸出 2 錯誤輸出 屏幕上的錯誤輸出 &> 重定向全部輸出 重定向符號有: > >> 2>&1 表示將錯誤的輸出重定向為標准輸出 例1 find /etc/ -name "*.conf" >> /tmp/file1 2>&1 例2 使用cat命令來演示重定向功能 cat > /tmp/file.txt << endf hello world endf3 注意腳本中的特殊字符
4 ``與$()執行命令
5 變量調用的標准方式是 ${VARNAME},通常花括號被省略了
6 seq命令生成序列
7 $(())和$[]命令用於計算
8 for循環
for VAR in LIST;do COMMOND done9 腳本調式使用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 STATeMENT elif CONDITION2;then STATEMENT else STATEMENT fi2)case語句
case VALUE in PATTERN1) STATEMENT ... STATEMENT ;; PATTERN2) STATEMENT ... STATEMENT ;; PATTERN3|PATTERN4) STATEMENT ... STATEMENT ;; [a-z]) STATEMENT ;; [0-9]) STATEMENT ;; *) STATEMENT ;; esac14 while循環語句
while CONDITION do STATEMENT done此外,還有個常用的按行讀取的用法:
while read CONDITION do STATEMENT done < INPUTSTREAM15 關於環境變量
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 NEWCMD17 使用函數
函數是一種隔離代碼段的方法,可以用來重復調用而無需重新編寫同樣功能的代碼
funcname() { STATEMENTS }