C高级第三天

第1题

实现四则运算,例如输入8+4,输出12 。8-4输出4。

代码:

#!/bin/bash

read -p "请输入一个四则运算>>>" a b c

case $b in
	+)
		echo "$a+$c=$((a+c))"
		;;
	-)
		echo "$a-$c=$((a-c))"
		;;
	\*)
		echo "$a*$c=$((a*c))"
		;;
	/)
		echo "$a/$c=$((a/c))"
		;;
esac

运行结果:

C高级第三天_第1张图片

第2题

写一个脚本,要求提示输入软件名。然后提示是否确认下载该软件

如果确认下载,输入 y 或者 yes 或者Yes 开始下载

如果输入其他则不下载

代码:

#!/bin/bash

read -p "请输入一个软件名>>>" name

read -p "是否确认下载>>>" k

case $k in
	y|yes|Yes)
		echo "开始下载......"
		sudo apt-get install "$name"
		;;
	*)
		echo "取消下载"
		;;
esac

运行结果:

C高级第三天_第2张图片

第3题

打印99乘法表

1 x 1 = 1

2 x 1 = 2 2 x 2 = 4

3 x 1 = 3 3 x 2 = 6 3 x 3 = 9

……

代码:

#!/bin/bash

# 打印99乘法表

for ((i=1;i<=9;i++))
do
	for ((j=1;j<=i;j++))
	do
		echo -e -n "$j × $i = $((i*j)) \t"
	done
	echo
done

运行结果:

C高级第三天_第3张图片

第4题

打印以下图形。在以下图形的基础上修改,要求从终端输入金字塔层数,打印出对应层数金字塔。

                                空格个数   *号

   *             i=0                 3         1

  ***           i=1                 2         3

 *****         i=2                 1         5

*******       i=3                 0         7

                                     3-i      (2*i)+1

代码:

#!/bin/bash

read -p "请输入金字塔层数>>>" n

for((i=1;i<=n;i++))
do
	for((j=1;j<=n-i;j++))
	do
		echo -n " "
	done

	for((j=$((2*i-1));j>0;j--))
	do
		echo -n "*"
	done
	echo
done

运行结果:

C高级第三天_第4张图片

第5题

从终端输入字符串,将字符串倒置存储。例如输入abcde,结果为edcba。

代码:

#!/bin/bash

read -p "请输入一个字符串>>>" str

n=${#str}
for ((i=0;i<=n;i++))
do
	str1="${str:$i:1}$str1"
done
echo $str1

运行结果:

C高级第三天_第5张图片

你可能感兴趣的:(linux)