Linux Shell编程:基本练习

1、9*9乘法表

使用for循环实现9*9乘法表的输出,其Shell脚本如下所示,执行结果如图1所示。

#!/bin/bash

for(( i=1;i<10;i++ ))

do

       line=""

       for(( j=1;j<=i;j++ ))

       do

              line="${line} ${i}*${j}=$(( $i*$j ))"

       done

       echo $line

done

2、绘制正方形

根据实际需求绘制相应大小的正方形,并且如果输入crtl+c或者输入的不是一个数字则退出脚本执行,其Shell脚本如下所示,执行结果如图2所示。

#!/bin/bash

trap "echo 输入exit退出" 2

while true

  do

    read -p "你想看多大的正方形:" a

    [ "$a" == "exit" ] && exit

    expr 1 + $a &>/dev/null 

    [ $? -ne 0 ] && echo "请输入一个数字!" && exit 2

b="■ "

#进行绘制每一行中的形状

d=$(for i in `eval echo {1..$a}`;do echo -n $b; echo -n " ";done)

#循环绘制多行形状

    for i in `eval echo {1..$a}`

     do

      echo "$d"

    done

done

3、查找网络主机

查看处于同一网络段中的主机能够通过PING命令访问到的主机IP地址,将这些IP地址进行输出,并输出到相应的文本文件中,其Shell脚本如下所示,执行结果如图3所示。

#/bin/bash

a=1

while :

do

    a=$(($a+1))

    if test $a -gt 255

    then break

    else

              if [ "$(ping -c 1 10.10.3.$a | grep "ttl" | awk '{print $4}'| sed 's/://g')" != "" ];then

                     echo $(ping -c 1 10.10.3.$a | grep "ttl" | awk '{print $4}'| sed 's/://g')

                     ip=$(ping -c 1 10.10.3.$a | grep "ttl" | awk '{print $4}'| sed 's/://g')

                     echo $ip >> ip.txt

              fi

    fi

done

4、查看系统用户

查看系统中无密码用户,并将其用户名进行输出,其Shell脚本如下所示,执行结果如图4所示。

#/bin/bash

echo "No Password User are :"

#/etc/shadow为保存系统密码的文件,通过正则拆分匹配查看密码为空的用户 

echo $(cat /etc/shadow | grep "!!" | awk 'BEGIN { FS=":" }{print $1}')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值