脚本练习题

1.使用脚本打印出如下图形

*
**
***
***
**
*
答案一:
#!/bin/bash
#1.接受一个参数为星星的个数。
num=$1

#2.求出总共要打印的行数
let lines=num*2

#3.for 循环处理每一行的数据
for i in `seq $lines`;do
#4.前半个星星处理逻辑
if [ $i -le $num ];then
for j in `seq $(( $num-$i))`;do
echo -n ” ”
done
for j in `seq $i`;do
echo -n “*”
done
echo “”

#5.后半个星星的处理逻辑
else
for j in `seq $num`;do
echo -n ” ”
done
for j in `seq $(( $lines-$i+1 ))`;do
echo -n “*”
done
echo “”
fi

done

答案二:
read -p “Input a number : ” i
#var=$[i*2-1]
declare -i m=1
declare -i ln=xn=$[i*2]
declare -i sn=$[i-1]
#declare -i n=1

#一共ln行,
for j in `seq $ln` ;do
if [ $j -le $[ln/2] ]; then #判断上半部分还是下半部分
for n in `seq $[i-1]` ;do #每行的空格数
echo -e ” \c”;
done
for m in `seq $m` ;do #每行的*数
echo -e “*\c”;
done
echo
m+=1
i=$[i-1]
continue
else
for s in `seq $sn` ;do #下半部分每行之前的空格数
echo -e ” \c”;
done
for x in `seq $[xn/2]` ;do #下半部分每行的*数
echo -e “*\c”;
done
echo
xn=$[xn-2]
fi
done

2.递归练习,打印出200以内的斐波那契数列。
#!/bin/bash

#1.创建斐波那契函数
function fib(){
#2.初始化接收到的参数
temp=$1

#3.前连个值都为1
if [ $temp -le 2 ];then
echo 1
#4.一定要有返回值,要不就死循环了。
return
fi

#4.如果不是前两个值,进行计算求值
v1=`fib $(( temp-1 ))`
v2=`fib $(( temp-2 ))`
echo $((v1+v2))
}

#fib $1

#5.输出对应长度的斐波那契数列
for i in `seq $1`;do
fib $i

done

方法二(数组非递归):
#!/bin/bash

#1.传入一个数列长度
read -p “Please input a number (If number is too large , the result will be wrong ):” i

#2.定义一个数组存放对应数列的值
declare -a sl
sl[0]=0
sl[1]=1
sl[2]=1

#3.前两数直接输出
if [ $i -lt 3 ];then
echo ${sl[*]}

#4.其他数值循环遍历生成,存放于数组中
else
for i in `eval seq 3 $i`; do
let sl[$i]=${sl[$i-1]}+${sl[$i-2]}
done
fi

#5.打印数组
len=${#sl[*]}
for i in `seq 1 $(( len-1 ))`;do
echo -n “${sl[$i]} ”
done
echo “”

3.编写一个脚本,测试一下172.20 教室 哪些主机可以ping通。并将ip地址按升序打印出来。

#!/bin/bash

#1.循环生成ip地址
for i in `seq 0 255`; do
#2.ping对应地址并将ping程序转为后台运行。
for n in `seq 1 30`; do
ping -c 1 -w 1 172.20.$i.$n > /dev/null && echo “Host 172.20.$i.$n is up” >> /tmp/p.txt &
#睡一会,0.001秒
sleep 0.001
done
done

#3.处理成功的ip地址
cat /tmp/p.txt | cut -d ” ” -f2

rm -rf /tmp/p.txt

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/93030

(0)
会飞的蜗牛会飞的蜗牛
上一篇 2018-03-26 20:11
下一篇 2018-03-26 20:12

相关推荐

  • DNS服务

    1、相关原理概念
    2、配置主DNS服务器
    3、配置从DNS服务器

    2018-06-03
  • 主机经过三路由通信

    网络规划 主机 A IP/# 172.16.0.1/16 gatway 172.16.0.2 网段 vm10 172.16.0.0 eth0 IP/# 172.16.0.2/16 路由 R1 eth1 IP/# 10.0.0.1/8 网段 vm11 10.0.0.0 eth0 IP/# 10.0.0.2/8 路由 R2 eth1 IP/# 172.31.0.…

    Linux笔记 2018-05-04
  • 说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shutdown、poweroff、reboot、hwclock、date命令的使用,并配合相应的示例来阐述。

    #COMMAND:一个可执行的二进制程序文件。 #OPTIONS:指定命令运行的特性,通常由两种表现形式:短选项-d,长选项–help。如果同一命令在运行时使用多个短选项,可将多个短选项合并,如:-l -d -> -ld。 #ARGUEMENTS:命令的作用对象;不同的命令的作用对象不同,可以是文件,目录,硬件设备等等。 #ifconfig…

    Linux笔记 2018-05-13
  • 权限

    chmod 更改权限 语法 1 who 对谁操作 opt做什么操作 per 跟什么权限 跟文件 who u g o a opt +增加 -减掉 =覆盖 per rwx reset 重复系统 文本文件 r 读 打开 w 改 x 执行程序 chown 更改所有者 chgrp 更改所属组 chmod who (u) opt (g)per(o) file文件 绿色有…

    Linux笔记 2018-04-08
  • Linux基础知识

    Linux是什么? 想要了解linux,我们就需要先介绍一下计算机。什么是计算机?计算机的功能和组成部分? 计算机是什么呢?它是一种能接收和存储信息 ,并按照存储在其内部的程序对海量数据进行自动、高速地 处理,然后把处理结果输出的现代化智能电子设备。 它的基本功能就是接收用户输入的指令,通过CPU的数学与逻辑单元运算处理后,产生或者存储成有用的信息。 计算机…

    2018-05-10
  • Linux基本指令

    hostname  完整主机名cat +文件路径  可查看文件信息cat /etc/shells  显示所有shelluname -r    查看内核版本ls cpu   查看cpu信息free命令  查看内存 后面加-k是显示的内存以kb为单位,-m(MB),-g(GB),-h显示易读单位lsblk  查看硬盘dmesg  查看计算机启动的一些相关信息dm…

    2018-07-22