Linux腳本編程中bash常用的測試類型:
整數測試:
-gt greater than 大于
-le less or equal 小于或等于
-ne not equal 不等
-eq equal 等于
-ge greater or equal 大于或等于
-lt less than 小于
字符測試
== 是否等于
> 是否大于
< 是否小于
!= 是否不等于
=~ 左側字符串能否被右側的模式所匹配
-z 判斷指定的字符串是否為空,空為真,不空為假
-n 判斷指定的字符串是否不空,不空為真,空為假;
文件測試
文件的存在測試
-a
-e
文件的類型測試
-b 是否存在并且為塊設備文件
-c 是否存在并且為字符設備文件
-d 是否存在并且為目錄設備文件
-f 是否存在并且為普通設備文件
-p 是否存在并且為命名管道文件
-S 是否存在并且為套接字文件
-h 是否存在并且為符號鏈接文件
文件權限測試
-r 是否存在并且對當前用戶可讀
-w 是否存在并且對當前用戶可寫
-x 是否存在并且對當前用戶可執行
特殊權限測試
-g 是否存在并且有sgid權限
-u 是否存在且擁有suid權限
-k 是否存在且擁有sticky權限
文件內容測試
-s 文件是否存在且是否有內容
文件時間戳測試
-N 文件自從上一次讀取后是否被修改過
從屬關系測試
-O 當前用戶是否為文件的屬主
-G 當前用戶是否屬于文件屬組
壓縮與解壓縮工具
file-roller
? compress/uncompress: .Z
? gzip/gunzip: .gz
? bzip2/bunzip2: .bz2
? xz/unxz: .xz
? zip/unzip
? tar
? cpio
作業
查找/var目錄下屬主為root,且屬組為mail的所有文件
find /var/ -user root -group mail
查找/var目錄下不屬于root、lp、gdm的所有文件
find /var/ -not \( -user root -o -user lp -o -user gdm \) -ls
查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件
find /var/ -mtime -7 -not \( -user root -o -user postfix \) -ls
查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪問過的文件
find /var/ -atime -7 -nouser -nogroup
查找/etc目錄下大于1M且類型為普通文件的所有文件
find /etc/ -type f -size +1M -exec ls -lh {} \;
查找/etc目錄下所有用戶都沒有寫權限的文件
find /etc/ -not -perm /222 -ls
查找/etc/init.d目錄下,所有用戶都有執行權限,且其它用戶有寫權限的文件
find /etc/init.d/ -perm /111 -a -perm /002
編寫腳本,利用變量RANDOM生成10個隨機數字,輸出這個10數字,并顯示其中的最大者
#!/bin/bash i=1 max=0 until [ $i -eq 10 ] ;do one=`echo $RANDOM` echo $one if [ $one -gt $max ] ;then max=$one else max=$max fi let i=$i+1 done echo "the bigest number is $max"
編寫腳本,通過ping命令探測172.16.250.1-254范圍內的所有主機的在線狀態,統計在線主機和離線主機各多少。
#!/bin/bash # i=0 a=0 b=0 until [ $i -gt 254 ] ; do ping -c 2 -w 2 10.1.252."$i" &> /dev/null if [ $? -eq 0 ] ;then echo "The host 10.1.252.$i on line" let a=$a+1 else echo "The host 10.1.252.$i out of line" let b=$b+1 fi let i=$i+1 done echo "The totol on line host is $a" echo "The totol out of line host is $b"
編寫腳本,打印九九乘法表
#!/bin/bash # h=1 s=1 until [ $h -gt 9 ] ; do echo -e " \n" s=1 until [ $s -gt $h ] ; do let sum=$h*$s echo -e "$s*$h=$sum \c" let s=$s+1 done let h=$h+1 done echo -e " \n"
原創文章,作者:317376161,如若轉載,請注明出處:http://www.www58058.com/37003
總結的有點簡單了哦,下次用點心,作業完成的還可以。