1、寫一個腳本,完成以下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
(2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;
(3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;
(4) 分別統計S開頭和K開頭的文件各有多少;
1 #!/bin/bash 2 #author:BaoZhang 3 # 4 DIR=/etc/rc.d/rc3.d/ 5 k_start=0 6 s_start=0 7 for i in $(ls $DIR) 8 do 9 echo $i | grep "^K" &>/dev/null 10 if [ $? -eq 0 ];then 11 line=$( wc -l $DIR$i| cut -d" " -f1 ) 12 let k_start++ 13 echo "$i:stop:$line" 14 else 15 line=$(wc -l $DIR$i | cut -d" " -f1 ) 16 let s_start++ 17 echo "$i:start:$line" 18 fi 19 done 20 echo "the total files start of k are:$k_start" 21 echo "the total files start of s are:$s_start"
2、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作為參數;
(2) 計算此些用戶的ID之和;
1 #!/bin/bash 2 #author:BaoZhang 3 # 4 sum=0 5 if [ $# -gt 0 ];then 6 for i in $* 7 do 8 id $i &>/dev/null 9 if [ $? -eq 0 ];then 10 echo "user $i exist " 11 let sum+=$(id -u $i ) 12 else 13 echo "user $i not exist " 14 fi 15 done 16 else 17 echo "arguments must be great then 0 " 18 exit 1 19 fi 20 echo "the sum of all user id is: $sum"
3、寫一個腳本
(1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
1 #!/bin/bash 2 #author:BaoZhang 3 # 4 function dir_count() 5 { 6 dir_number=0 7 file_number=0 8 cd $1 &>/dev/null 9 if [ $? -eq 0 ];then 10 for j in $(ls $1) 11 do 12 cd $1$j &>/dev/null 13 if [ $? -eq 0 ];then 14 let dir_number++ 15 file_number=$(ls $1$j | wc -l ) 16 else 17 let file_number++ 18 fi 19 done 20 ls $1 21 echo "in $1 ,total dir number is:$dir_number,total file is: $file_number" 22 else 23 echo "$1 is not a directory" 24 fi 25 } 26 27 if [ $# -ge 1 ];then 28 for i in $* 29 do 30 dir_count $i 31 done 32 else 33 echo "argument invalid" 34 exit 1 35 fi
4、寫一個腳本
通過命令行傳遞一個參數給腳本,參數為用戶名
如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
1 #!/bin/bash 2 #author:BaoZhang 3 # 4 if [ $# -eq 1 ];then 5 id_number=$(id -u $1 &>/dev/null) 6 if [ $? -eq 0 ];then 7 if [ $id_number > 500 ];then 8 echo "usual user" 9 else 10 echo "system user" 11 fi 12 else 13 echo "$1 not exist" 14 fi 15 else 16 echo "argument must be only one" 17 fi
5、寫一個腳本
(1) 添加10用戶user1-user10;密碼同用戶名;
(2) 用戶不存在時才添加;存在時則跳過;
(3) 最后顯示本次共添加了多少用戶;
1 #!/bin/bash 2 #author:BaoZhang 3 # 4 total_user=0 5 for i in {1..10} 6 do 7 id user$i &>/dev/null 8 if [ $? -eq 0 ]; then 9 echo "user$i exist" 10 echo "user$i" | passwd --stdin user$i &>/dev/null 11 echo "user$i change the password" 12 else 13 useradd user$i 14 echo "user$i" | passwd --stdin user$i &>/dev/null 15 echo "user$i add finished" 16 let total_user+=1 17 fi 18 done 19 echo "$total_user add"
6、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
1 #!/bin/bash 2 #author:BaoZhang 3 # 4 online_number=0 5 no_online_number=0 6 for i in 192.168.88.{100..200} 7 do 8 ping -c 2 -W 2 $i &>/dev/null 9 if [ $? -eq 0 ];then 10 echo "$i is onlline" 11 let online_number++ 12 else 13 echo "$i not online" 14 let no_online_number++ 15 fi 16 done 17 echo "$online_number host online,$no_online_number not online " 18
7、打印九九乘法表;
1 #!/bin/bash 2 #author:BaoZhang 3 # 4 for((i=1;i<10;i++)) 5 do 6 for((j=1;j<=i;j++)) 7 do 8 echo -n "$j*$i=$[ $j * $i ]" 9 echo -n " " 10 done 11 echo "" 12 done ~
原創文章,作者:zhangbao,如若轉載,請注明出處:http://www.www58058.com/59460
贊,幾個腳本都寫的比較好~~繼續加油~