標籤:
首先學習趙文宇的總結指令碼:
1.變數
HOST=$(/bin/hostname)
將()裡的命令執行後的結果賦值給HOST變數
HOST=`/bin/hostname`
將反引號裡面的執行結果賦值給HOST變數
2.echo
echo $? // 對上一次命令執行成功與否成功$?為0
3.if等一些需要條件判斷的語句
(1)判斷檔案是否存在且是否為檔案
[ -f file ]
判斷檔案是否存在且是否為可寫檔案
[ -w file ]
判斷檔案是否存在且是否為可執行檔
[ -x file ]
判斷檔案是否存在且是否為可讀檔案
[ -r file ]
判斷檔案是否存在且是否為目錄檔案
[ -d file ]
判斷檔案是否存在且是否為空白檔案
[ -s file ]
判斷檔案是否存在
[ -e file ]
[]和 test功能一樣 -a和-o(和,或)
(2)整數值比較判斷
[ -eq ]
[ "$a" = "0" ]
(( a % 2 == 0 ))
注意:(( a == 50 )) 數值的比較,在(())裡用不用$都一樣
[ -n string ] //string 的長度大於0
[ -z string ] //string 的長度為0
string1=string2 //字串相等
string1!=string2 //字串不相等
[ int1 -gt int2 ] //int1>int2 greater than
[ int1 -ge int2 ] //int1>=int2 greater equal
[ int1 -eq int2 ] //int1=int2 equal
[ int1 -ne int2 ] //int1!=int2 not equal
[ int1 -le int2 ] //int1<=int2 less equal
[ int1 -lt int2 ] //int1<int2 less than
(3)符串比較
[ "$a" = "$b" ]
[ -n "$a" ]和 [ "$a" ]一樣 判斷字串$a是否為空白
[[ "$a" == *"redhat"* ]]和[[ "$a" = *"redhat"* ]]判斷-在$a中是否含有redhat字串
(4)if後接的是命令 &&和||
if rpm -q gcc && id tom||echo "sss" // &&如果前面的命令執行成功則執行&&後的命令否則執行||後面的命令
4.sed
sed -ri /^#ServerName.*:80$/s/^#// /etc/selinux/config //找出/etc/seliunx/config檔案中以#ServerName開頭以:80結尾的行並將#替換成空白
5.
df -Th|grep "/$"|awk ‘{print $6}‘|sed ‘s/%//‘ //df後截取某個欄位並替換
6.
自學shell指令碼