Shell脚本进阶练习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本进阶练习相关的知识,希望对你有一定的参考价值。

1、判断用户输入的数字是否为正整数。


#!/bin/bash

#判断用户输入的参数是否为正整数

read -p "Please input a digit:" int

if [[ "$int" =~ (^[0-9]*[1-9][0-9]*$) ]];then

        echo "this digit is positive integer"

else

        echo "this digit is not positive integer"

fi


2、判断/var/目录下的所有文件类型。


#!/bin/bash

for f in /var/* ;do

        if [ -L $f ];then

                echo "$f is linkfile"

        elif [ -f $f ];then

                echo "$f is commom fole"

        elif [ -d $f  ];then

                echo "$f is directory"

        else

                echo "$f is other files"

        fi

done


3、计算100以内所有能被3整除的整数之和。


 

#!/bin/bash

sum=0

for i in {1..100};do

        yu=$[i%3]

        if [ "$yu" -eq 0 ];then

                let sum+=i

        fi

done

echo $sum

~         


4、

编写脚本,提示请输入网络地址,如192.168.0.0,判断输入的网段中主机在线状态。


#!/bin/bash

> /app/ipv4.log

read -p "Please input the network(eg:192.168.1.0):" network

[[ "$network" =~ ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ ]] || { echo "Please input a legal IP" ; exit 1; }

net=`echo $network | cut -d. -f1-3`

for i in {1..14};do

        {

        if ping -c1 -w1 $net.$i &>/dev/null;then

                echo $net.$i is up |tee -a /app/ipv4.log

        else

                echo $net.$i is down

        fi

        }&

done

wait



5、九九乘法表


#!/bin/bash

for i in {1..9};do

        for j in `seq 1 $i`;do

                echo -e "${j}x${i}=$[j*i]\t\c"

        done

        echo

done


6、

在/testdir目录下创建10个html文件,文件名格式为数字N(从1到10)加随机8个字母,如:1AbCdeFgH.html


#!/bin/bash

for i in {1..3};do

        j=`openssl rand -base64 1000 |tr -dc '[alpha]' |head -c8`

        touch /app/$i$j.html

done



7、打印等腰三角形


#!/bin/bash

read -p "Please input number:" line

for i in `seq $line`;do

        space=`echo $[$line-$i]`

        for j in `seq $space`;do

                echo -n ' '

        done

        for k in `seq $[$i*2-1]`;do

                echo -n '*'

        done

        echo    

done


以上是关于Shell脚本进阶练习的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本编程进阶练习题

SHELL脚本进阶练习题

shell脚本进阶

7个shell脚本实例--shell脚本练习必备

Linux shell脚本进阶使用

shell脚本进阶