1、寫一個腳本,使用ping命令探測172.16.250.1-172.16.250.254之間的所有主機的在線狀態;在線的主機使用綠色顯示;不在線的主使用紅色顯示;
#!/bin/bash # for((i=1;i<=254;i++));do site="172.16.250.${i}" ping -w1 -c1 $site &> /dev/null if [[ "$?" == "0" ]];then echo -e "\033[32m${site}\033[0m" else echo -e "\033[35m${site}\033[0m" fi done
2.寫一個腳本,完成以下功能
(1) 假設某目錄(/etc/rc.d/rc3.d/)下分別有K開頭的文件和S開頭的文件若干;
(2) 顯示所有以K開頭的文件的文件名,并且給其附加一個stop字符串;
(3) 顯示所有以S開頭的文件的文件名,并且給其附加一個start字符串;
(4) 分別統計S開頭和K開頭的文件各有多少;
#!/bin/bash # for i in $(ls /etc/rc.d/rc3.d/);do if [[ "$i" =~ ^S ]];then S=$(echo $i | wc -l) let Ssum+=$S echo ${i}start fi if [[ "$i" =~ ^K ]];then K=$(echo $i | wc -l) let Ksum+=$K echo ${i}stop fi done echo "S Begin:$Ssum" echo "K Begin:$Ksum"
3、寫一個腳本,完成以下功能
(1) 腳本能接受用戶名作為參數;
(2) 計算此些用戶的ID之和;
#!/bin/bash # if [ $# -eq 0 ];then echo "At least one parameter,try the script again,please!" exit 1 fi for i in $*;do id $i &> /dev/null && uid=$(grep -E "^${i}" /etc/passwd | cut -d: -f3) || echo "This user isn't existing" let sum+=$uid done echo "ID_SUM is $sum"
4、寫一個腳本
(1) 傳遞一些目錄給此腳本;
(2) 逐個顯示每個目錄的所有一級文件或子目錄的內容類型;
(3) 統計一共有多少個目錄;且一共顯示了多少個文件的內容類型;
#!/bin/bash # if [ $# -eq 0 ];then echo "At least one parameter,try the script again,please!" exit 1 fi for i in $*;do if [ -d $i ];then ls $i dnum=$(ls $i | wc -l) echo "The Directory has $dnum files" else ls $i echo "This is a commom file:$i" fi done
5、寫一個腳本
通過命令行傳遞一個參數給腳本,參數為用戶名
如果用戶的id號大于等于500,則顯示此用戶為普通用戶;
#!/bin/bash # if [ $# -eq 0 ];then echo "At least one parameter,try the script again,please!" exit 1 fi for i in $*;do id $i &> /dev/null && uid=$(grep -E "^${i}" /etc/passwd | cut -d: -f3) || echo "This user isn't existing" if [[ "$uid" > "500" ]];then echo "$i is a common user" fi done
6、寫一個腳本
(1) 添加10用戶user1-user10;密碼同用戶名;
(2) 用戶不存在時才添加;存在時則跳過;
(3) 最后顯示本次共添加了多少用戶;
#!/bin/bash # x=0 for i in {1..10};do id user$i &> /dev/null && continue || useradd user$i && echo "user$i" | passwd --stdin user$i && let x++ done echo "add $x users"
7、寫一腳本,用ping命令測試172.16.250.20-172.16.250.100以內有哪些主機在線,將在線的顯示出來;
與第一題相似,就不寫啦~
8、打印九九乘法表;
#!/bin/bash # for((i=1;i<=9;i++));do for((j=1;j<=i;j++));do echo -e -n "$j*$i=$[$i*$j]\t" done echo "" done
原創文章,作者:N24_澀味,如若轉載,請注明出處:http://www.www58058.com/63855
贊~~從幾個腳本來看,掌握的非常不錯~~繼續加油~