shell脚本常见面试题
1、打印九九乘法表方法一
#外层循环表示9行
for row in `seq 9`
do
#里层循环表示列
for col in `seq $row`
do
echo -e $row x $col ="$[ row*col ]\t\c"
done
echo
done
方法二:
for((i=1;i> /app/http.log
fi
sleep "$sleeptime"
done
让脚本在后台执行不影响前台正常工作
nohup./root/scripts/monhttpd.sh&
7、将连接服务器次数很多次的客户端IP加入防火墙
while true
do
ss -nt | grep ESTAB | tr -s " " ":" | cut -d: -f6 | sort | uniq -c | while read num ip
do
if [ "$num" -gt 2 ];then
iptables -A INPUT -s "$ip" -j REJECT
fi
done
sleep 3
done
8、后续六个字符串:efbaf275cd、4be9c40b8b、 44b2395c46、f8c8873ce0、b902c16c8b、ad865d2f63是通过对随机数变量RANDOM随机执行命令:
echo $RANDOM|md5sum|cut –c1-10
i=1
while [ "$i" -le 32767 ];do
ranmd5=`echo $i | md5sum | cut -c1-10`
case ${ranmd5}in
efbaf275cd)
echo $i md5 is efbaf275cd
;;
4be9c40b8b)
echo $i md5 is 4be9c40b8b
;;
44b2395c46)
echo $i md5 is 4be9c40b8b
;;
f8c8873ce0)
echo $i md5 is 4be9c40b8b
;;
b902c16c8b)
echo $i md5 is 4be9c40b8b
;;
ad865d2f63)
echo $i md5 is 4be9c40b8b
;;
esac
let i++;
done
9、编写脚本,利用变量RANDOM生成10个随机数字,输出这个10数字,并显示其中的最大值和最小值(随机数最大值32767)
i=1
while [ "$i" -le 10 ];do
random=`echo $RANDOM`
echo $random
if [ "$i" = 1 ];then
max=$random
min=$random
else
if [ "$random" -gt "$max"];then
max="$random"
elif [ "$random" -lt "$min" ];then
min="$random"
fi
fi
let i+=1
done
echo "max is $max"
echo "min is $min"
10、while循环创建菜单
cat
页:
[1]