首页 > 系统相关 >Shell脚本编程题(八道)

Shell脚本编程题(八道)

时间:2024-12-22 20:09:07浏览次数:4  
标签:bin 输出 Shell do 编程 echo 八道 sh done

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

第四题

  1. 输出九九乘法表至“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

相关文章

  • VM虚拟机安装CentOS操作系统超详细教程(包含配置网卡、使用Xshell远程连接工具)
    1.创建新的虚拟机 2.选择典型配置3.稍后安装操作系统 4.选择Linux、版本为CentOS764位 5.自定义名称和路径 6.设置磁盘大小和选择拆分成多个文件。7.自定义硬件,设置内存大小8.设置处理器的数量9.使用iso镜像文件10.选择NAT模式11.开启建好的虚拟机12.回车......
  • C++, 模板元编程, 凭借辅助的模板结构的特化 , 从而以类型控制模板类的分支
    u++真是学无止境,遍地地雷,哦不,遍地黄金。看ue序列化中的TArray有感,特节取部分代码保存,希望能多切近ue的编码经验半分。 //...template<typenameT>structTCanBulkSerialize{enum{Value=false};};template<>structTCanBulkSerialize<unsignedint>{enum{Value......
  • 实验6 C语言结构体、枚举应用编程
    4.实验任务4#include<stdio.h>#defineN10typedefstruct{charisbn[20];//isbn号charname[80];//书名charauthor[80];//作者doublesales_price;//售价intsales_count;//销售册数}Book;voidoutput(Bookx[],intn);voidsort(Bookx[],intn);......
  • 我在使用Rust编程时,只在编译期提示要手动标注生命周期时才进行标注,这样可以吗?
    在使用Rust编程时,只在编译器提示需要标注生命周期时才进行标注是一种可以接受的初学者实践,但随着经验积累和代码复杂度增加,这种方式可能会有以下问题和限制:1.优点:简单、快速入门编译器友好:Rust的借用检查器非常强大,大部分情况下会推断出正确的生命周期,尤其是在简单的函数......
  • 实验6 C语言结构体、枚举应用编程
    实验一://P286例8.17//对教材示例代码作了微调,把输出学生信息单独编写成一个函数模块//打印不及格学生信息、打印所有学生信息均调用该模块实现#include<stdio.h>#include<string.h>#defineN3//运行程序输入测试时,可以把N改小一些输入测试typedefstr......
  • 【并发编程】第十一章 测试和调试多线程应用程序
    第十一章测试和调试多线程应用程序11.1与并发相关的bug类型有些类型的错误直接与并发的使用相关11.1.1不必要的阻塞线程因为等待某些条件(如互斥锁、条件变量、期值对象或I/O操作)而无法继续执行:死锁:两个或多个线程无限期地等待对方释放资源,导致程序挂起活锁:线程不断尝......
  • 【并发编程】第十章 并行算法
    第十章并行算法10.1并行化标准库算法C++17标准为C++标准库引入了并行算法的概念。并行版本的函数签名与“普通”单线程版本相比,增加了一个新的参数std::vector<int>my_data;std::sort(std::execution::par,my_data.begin(),my_data.end());std::execution::p......
  • 实验6 C语言结构体、枚举应用编程
    #include<stdio.h>#defineN10typedefstruct{charisbn[20];//isbn号charname[80];//书名charauthor[80];//作者doublesales_price;//售价intsales_count;//销售册数}Book;voidoutput(Bookx[],intn);voidsort(Bookx[],......
  • 实验6 C语言结构体、枚举应用编程
    4.实验任务4#include<stdio.h>#defineN10typedefstruct{charisbn[20];charname[80];charauthor[80];doublesales_price;intsales_count;}Book;voidoutput(Bookx[],intn);voidso......
  • Javascript元编程
    元编程(Metaprogramming)是编写操作程序本身的程序的艺术,允许程序通过操作代码结构和行为来自我调整。元编程的核心是增强代码灵活性和动态性,典型的元编程功能包括拦截、修改、生成代码等文章首发博客,点击查看扫码关注公众号,查看更多优质文章引文:引用维基百科元编程的概念:......