• shell脚本编程练习


    转至:http://www.178linux.com/88406

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态

    在线的主机使用绿色显示

    不在线的主使用红色显示

    #!/bin/bash

    #

    for i in {1..254};do

    if ping -c 6 -w 1 192.168.1.$i &> /dev/null;then

    echo -e “33[32m 192.168.1.$i 33[0m is up”

    else

    echo -e “33[31m 192.168.1.$i 33[0m is down”

    fi

    done

    2、如何给网络接口配置多个地址,有哪些方式?

    1. a) 使用ifconfig命令

    例如 ifconfig eno16777736:0 192.168.0.100/24

    1. b) 使用Ip addr命令

    例如 ip addr add 192.168.0.101/24 dev eno16777736

    1. c) 通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置;
    2. d) 使用nmtui命令

    3、写一个脚本,完成以下功能

    (1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干

    (2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串

    (3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串

    (4) 分别统计S开头和K开头的文件各有多少

    #!/bin/bash

    #

    declare -i n=0

    declare -i m=0

    for i in $(ls /etc/rc.d/rc3.d); do

    if [ $(echo $i | cut -c 1)  == “K” ]; then

    echo “$i stop”

    let n++

    elif [ $(echo $i | cut -c 1) == “S” ]; then

    echo “$i start”

    let m++

    fi

    done

    echo “K is $n S is $m.”

    4、写一个脚本,完成以下功能

    (1) 脚本能接受用户名作为参数

    (2) 计算此些用户的ID之和

    #!/bin/bash

    #

    declare -i sum=0

    for i in $@; do

    if ! id $i &> /dev/null; then

    echo “$i is not user”

    else

    let sum=$sum+$(id -u $i)

    fi

    done

    echo “uid sum = $sum”

    5、写一个脚本

    (1) 传递一些目录给此脚本

    (2) 逐个显示每个目录的所有一级文件或子目录的内容类型

    (3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型

    #!/bin/bash

    #

    declare -i m=0

    declare -i n=0

    for i in $@;do

    if [ -d $i ];then

    for x in $i/*;do

    echo $x

    let m++

    if [ -d $x ];then

    echo $x

    let n++

    fi

    done

    else

    echo “$i is not a dir or not file”

    fi

    done

    echo ” dir = $n   file = $m ”

    6、写一个脚本

    通过命令行传递一个参数给脚本,参数为用户名

    如果用户的id号大于等于500,则显示此用户为普通用户

    #!/bin/bash

    #

    uname=$1

    if id $uname &> /dev/null ;then

    if [ $(id -u $uname) -ge 500 ];then

    echo “this is a normal user”

    else

    echo “Not an ordinary user”

    fi

    else

    echo “not a user”

    fi

    7、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来

    #!/bin/bash

    #

    for i in {20..100};do

    if ping -c 1 172.16.250.$i &> /dev/null;then

    echo “172.16.250.$i is online”

    fi

    done

    8、打印九九乘法表

    #!/bin/bash

    #

    for i in ‘seq 1 9’;do

    for j in ‘seq 1 $i’;do

    echo -n -e “${j}X${i}=$[$j*$i] ”

    done

    echo

    done

  • 相关阅读:
    《程序员修炼之道——从小工到专家》读后感二
    2019.10.14课堂总结
    《程序员修炼之道——从小工到专家》读后感一
    2019.09.23课堂总结
    回文序列判断
    动手动脑
    2018/10/21动手动脑及类的创建
    动手动脑-java重载
    第二次上机实验体会
    Java第一次上机实验源代码
  • 原文地址:https://www.cnblogs.com/my-first-blog-lgz/p/13390441.html
Copyright © 2020-2023  润新知