1、if語句
2、交互選擇
3、循環判斷
4、數值運算符
5、…………
if語句格式:
if [ 條件 ]
then
command
else
command
fi
交互選擇(N可以為*)
echo -e "提示語言,後邊有光標提供輸入"\c
read VAR
case $VAR in
Y)
command
;;
N)
command
;;
esac
對條件進行循環檢查,成立則處理,否則繼續檢查
a=1
while [ "$a" = "1" ]
do
fileno=`ls -l /list/filename* |wc -l`
if [ "$fileno" = "10" ]
then
a=10
command
else
a=1
sleep 300
fi
done
grep -v www filename 過濾不包含
grep www filename 過濾包含
uniq -u 過濾沒有相同行
uniq -d 過濾具有相同行
sort 排序
paste -d";" filename1 filename2 把文件並列合並並且以;間隔
if [ "a" = "10" ] #a=10
[ "a" -ne "10" ] 同上一行
[ -s filename ] 文件大小大於0
-s 文件大小大於0返回真
-d 是一個目錄是返回真
-e 文件或目錄存在返回真
-g 存在是SGID返回真
-h 文件是連接文件返回真
-k 文件是粘滯位返回真
-r 文件或目錄存在並可讀時返回真
-w 文件或目錄存在並可寫時返回真
-u 文件是SUID返回真
-x 文件是可執行的返回真
-eq 等於
-ne 不等於
-lt 小於
-le 小於等於
-gt 大於
-ge 大於等於
2*3+4|bc 計算前面的數據
ping -w 2 www.163.com 測試2兩次
對上一次指令結果判斷
$?=0 為真
$?=1 為假
給SHELL後邊加參數
XXXX=`echo | wc -c`
cat $HOME/list/file.txt 1>/dev/null 2>/dev/null
OK=$?
if [ "" = "" ] || [ "$XXXX" -lt "4" ] || [ "$OK" -ne "0" ]
then
echo "參數沒有輸入,輸入位數不等於3,file.txt不存在,請重新輸入"
exit
fi
一個循環檢查
line=1
for i in `cat bb`
do
QQ=`echo "scale=2;$i*100" | bc | awk -F. '{print }'`
if [ "$QQ" -ge "75" ]
then
sed -n "$line"p temp.1 >> bad.1
fi
line=`expr $line + 1` ###每次加1
done