发表于: 2016-11-17 11:58:39
0 916
最近写了几个练手的小脚本,找不到练习题的可以拿去看一下
1 /etc/rc.d/rc3.d 目录下分别有多个以K 开头和以S 开头的
文件 以K开头的文件输出为文件加stop,以S开头的文件输出为文件名加start
#! /bin/bash
for file in `ls /etc/rc.d/rc3.d`;do
head=`echo "$file"|cut -c 1`
case $head in
S|s)
echo "$file stop"
;;
K)
echo "$file start"
;;
*)
exit 1
;;
esac
done
2 编写脚本,提示请输入网络地址,如192.168.0.0,判断输入的网段中主机在线状态
#! /bin/bash
read -p "Please input a ipv4_address: " ip
head=`echo $ip | sed -n 's/.[[:digit:]]\{,3\}$//p'`
echo "$head"
sum1=0
sum2=0
for i in {1..254};do
if ping -c1 -W2 "$head.$i" &> /dev/null;then
echo "$head.$i is up"
sum1=$[$sum1+1]
else
echo "$head.$i is dowm"
sum2=$[$sum2+1]
fi
done
echo -e "$sum1 ip is up\n $sum2 ip is down"
3 随机产生10个随机数比较这10个随机数的大小 ,显示最大最小值。要求用while实现
#! /bin/bash
a=$RANDOM
max=$a
min=$a
i=1
while [ $i -le 9 ];do
b=$RANDOM
if [ "$max" -lt "$b" ];then
max=$b
fi
if [ $max -gt $b ];then
min=$b
fi
i=$[$i+1]
echo "$b"
done
echo $a
echo "the max is $max the minx is $min"
4 使用while求100内的奇数和
#! /bin/bash
sum=0
i=1
while [ "$i" -le 100 ];do
sum=$[$sum+$i]
i=$[$i+2]
done
echo "the sum is $sum"
5 使用while实现九九乘法表
#! /bin/bash
i=1
while [ $i -le 9 ];do
j=1
while [ $j -le $i ];do
n=$[$j*$i]
echo -n "$j*$i=$n "
j=$[$j+1]
done
echo
i=$[$i+1]
done
6 使用while打印等腰三角形
#!/bin/bash
i=1
while [ $i -le 10 ]
do
j=1
while [ $j -le $((10-$i)) ]
do
echo -n ' '
j=$(($j+1))
done
j=1
while [ $j -le $((2*$i-1)) ]
do
echo -n x
j=$(($j+1))
done
echo
i=$(($i+1))
done
7 使用for 循环打印等腰三角形
#!/bin/bash
read -p "please input the line : " line
for i in $(seq 1 $line); do
for j in $(seq 1 $[$line-$i]);
do
echo -n " "
done
for j in $(seq 1 $[2*$i-1]);
do
echo -n "*"
done
echo
done
8 后续六个字符串:154773ae5d、bc3f3efe68、ada7aa2054、4ee771de1f、4ee771de1f、3417171ac1是通过对RANDOM随机数变量执行命令:md5sum|cut –c1-10 后的结果,请破解这些字符串对应的RANDOM值
#! /bin/bash
c=1
cat /testdir/6random.txt | while read LINE
do
echo $LINE
a=$LINE
while [[ "$a" != "$c" ]];do
b=$RANDOM
c=`echo "$b"|md5sum|cut -c 1-10`
done
echo "$a fromm $b"
done
评论