Shell脚本编程题(八道)
第一题
1.编程实现从键盘获取一个整数,按下列情况输出对应结果:
(1)当该数值为 6 或 7 时,输出“休息日(Rest Day)”。
(2)当该数值为 1 至 5 时,输出“工作日(Working Day)”。
(3)其他情况输出“输入错误(Error Input)”
#!/bin/sh
read datetime
case "$datatime" in
6|7)
echo '休息日(Rest Day)'
;;
1|2|3|4|5)
echo '工作日(Working Day)'
;;
*)
echo '输入错误(Error Input)'
;;s
esac
第二题
2.编程实现从键盘获取一个字符后,当该字符为字母时输出“It’s a letter.”,当该字符为数字时输出“It’s a number.”,其他情况时输出“Unknown.”。
#!bash/sh
read letter
case "$letter" in
[a-zA-Z])
echo 'It's a letter.'
;;
[0-9] )
echo 'It's a number.'
;;
*)
echo 'Unknown.'
;;
esac
第三题
3.编程实现从键盘获取一个表示成绩的数值,按下列情况输出对应结果:
(1)若该数值小于 0 或大于 100,则输出“输入错误(Error Input)”。
(2)若该数值范围为 60-100,则输出“通过(Passed)”。
(3)若该数值范围为 0-59,输出“失败(Failed)”。
#!/bin/sh
read value
if [ "$value" -lt 0 ] || [ "$value" -gt 100 ]; then
echo "输入错误(Error Input)"
elif [ "$value" -ge 60 ]; then
echo "通过(Passed)"
else
echo "失败(Failed)"
fi
第四题
-
输出九九乘法表至“99.txt”文件中,格式如下:
1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
#!/bin/sh for x in $( seq 1 9) do for y in $(seq 1 $x) do printf "$x*$y=$(($x*$y)) \t" done echo done > 99.txt
第五题
5.编程实现求出所有两位数质数,并且把它们按行追加到“prime.lst”文件中。
#!/bin/sh
# 遍历两位数(10 到 99)
for a in $(seq 10 99); do
# 假设是质数
is_prime=1
# 检查因子,只需到 sqrt(a)
for b in $(seq 2 $(echo "sqrt($a)" | bc)); do
if test $(($a % $b)) -eq 0; then
# 如果找到因子,标记为非质数
is_prime=0
break
fi
done
# 如果是质数,写入文件
if test $is_prime -eq 1; then
echo "$a" >> prime.lst
fi
done
第六题
6.斐波那契(Fibonacci)数列,又被称为黄金分割数列。第 1 项为 1,第 2 项为 1,从第 3 项开始每一项为前两项之和,即 2、3、5、8……。编程实现将前 10 项以逗号分隔的格式输出至名称为“fib”的文件中。
#!/bin/sh
num1=1
num2=1
echo -n “$num1,$num2”>fib
startnum=3
while test $n -le 10; do
temp=$((num1+num2))
num1=$num2
num2=$temp
printf “,$f” >> fib
startnum=$((startnum+1))
done
第七题
7.使用重定向和循环从“price”文件中循环读入每一行表示价格的数据并输出它们 9 折后的整数值至“price.new”文件中。
#!/bin/sh
while read itemprice;
do
echo $(($itemprice*90/100))
done < price > price.new
第八题
8.已知“sales”文本文件中每行保存着某商品的销售数量,使用重定向输入和循环读出这些数据并输出它们的和。
#!/bin/sh
total=0
while read amount;
do
total=$(expr $total +amount);
done < sales
echo $total
标签:bin,输出,Shell,do,编程,echo,八道,sh,done
From: https://www.cnblogs.com/ljj-future-promising/p/18622455