发表于: 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



返回列表 返回列表
评论

    分享到