2.17作业

本文介绍了几个基础的Shell脚本示例,包括字符类型判断、闰年和平年计算、查找水仙花数、稀疏数组求和、目录文件统计、冒泡排序以及学生成绩等级判定,展示了Shell编程的基本操作和逻辑处理。
摘要由CSDN通过智能技术生成

1.终端输入一个字符,判断是大写字母小写字母还是数字字符。

#!/bin/bash
read -p "请输入一共字符" num
case $num in
    [a-z])
        echo 是小写字母
        ;;
    [A-Z])
        echo 是大写字母
        ;;
    [0-9])
        echo 是数字
        ;;
esac

2.终端输入年月,需要考虑闰平年,判断该月有多少天(2月闰年29天,平年28天)

#!/bin/bash
read -p "请输入年" year
read -p "请输入月" mon
if [ $((year%4)) -eq 0 -a $((year%100)) -ne 0 -o $((year%400)) -eq 0 ]
then
    echo $year是闰年
    case $mon in
        2)
            echo 有29天
            ;;
        1|3|5|7|8|10|12)
            echo 有31天
            ;;
        4|6|9|11)
            echo 有20天;
            ;;
    esac
else
    echo $year是平年
    case $mon in
        2)
            echo 有28天
            ;;
        1|3|5|7|8|10|12)
            echo 有31天
            ;;
        4|6|9|11)
            echo 有20天;
            ;;
    esac
fi

3.使用循环求100-1000内的水仙花数

#!/bin/bash
for ((i=100;i<1000;i++))
do
    if [ $(((i/100)**3+(i%100/10)**3+(i%10)**3)) -eq $i ]
    then
        echo $i
    fi
done

4.求稀疏数组中元素的和(下标不连续)

#!/bin/bash
arr=([1]=5 [5]=9 [7]=45 [8]=2)
for i  in ${arr[*]}
do 
    ((sum+=i))
done
echo $sum

5.使用循环求家目录下目录文件和普通文件的个数

#!/bin/bash
count=0
num=0
cd ~
for i in `ls`
do
    if [ -d $i ]
    then
        ((count++))
    fi
    if [ -f $i ]
    then
        ((num++))
    fi
done
echo 目录文件有$count
echo 普通文件有$num

6.用shell写冒泡排序

#!/bin/bash
read -a arr
len=${#arr[*]}
temp=0
for((i=0;i<len;i++))
do
    for((j=i;j<len;j++))
    do
    if [ ${arr[i]} -ge ${arr[j]} ]
    then
        k=${arr[i]}
        arr[i]=${arr[j]}
        arr[j]=$k
    fi
done
done
echo ${arr[*]}

7.终端输入学生成绩,判断等级100-90A,90-80B,80-70C,70-60D,60以下不及格。(把输入不合理也虑进去)

#!/bin/bash
read -p "请输入学生的成绩" num
if [ $num -le 100 -a $num -ge 0 ]
then
    case $num in
        100)
            echo A
            ;;
        9?)
            echo A
            ;;
        8?)
            echo B
            ;;
        7?) 
            echo C
            ;;
        6?)
            echo D
            ;;
        *)
            echo 不及格
            ;;
    esac
else
    echo 输入错误
fi

8.整理今天的知识点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值