shellshell
"" 保留$,`,\, 換行含義,‘’保留字面值數組
$(), ``用於命令替換安全
算術擴展如 $[1+1]bash
for循環:測試
for Host in host1, host2, host3; do echo $Host; done調試
for Host in host{1,2,3}; do echo $Host; doneblog
for Host in host{1..3}; do echo $Host; doneip
for Package in $(rpm -a | grep kernel); do echo "$Package was installed on $(date -d @$(rpm -q --qf "%{INSTALLTIME}\n" $Package))"; done字符串
for EVEN in $(seq 2,2,8); do echo "$EVEN"; doneit
2
4
6
8
調試模式
#!/bin/bash -x 或者 bash -x scriptname 或在腳本中插入命令set -x , set +x 分別開啓和關閉調試
bash -v script 詳細模式,每一個命令執行器打印命令到標準輸出 (set -v set +v)
特殊變量:
引用位置參數:$*,全部參數當成一個單詞;$@,每一個參數當成一個單詞(返回數組)
$#參數數量
退出狀態 $? 0 表示退出成功 (exit num能夠用在腳本中做爲退出代碼)
if [$# -lt 3];then
echo "usage:...";
exit -1;
fi
整數比較 [ "$a" -eq "$b"] [1 -eq 1]
-eq =
-ne !=
-gt >
-ge >=
-lt <
-le <=
字符串比較 ==, =, !=
字符串長度爲零 -z
字符串不爲空 -n
測試文件和目錄:
邏輯操做&&, ||
條件操做:
if a; then b;else c;fi
if a; then b;elif c;then d; else e; fi
寫一個腳本查找最後建立時間是3天前,後綴是*.log的文件並刪除。
find / -name "*.log" -ctime +3 -exec rm -f {} \;
安全刪除修改日期5天前
find . -name "*.log" -mtime +5 -ok rm {} \;