2022.07.15.shell脚本练习

1.无符号整数,不考虑翻转后超出范围的情况,你需要将这个整数中每位上的数字进行反转。

输入:123  输出321 

输入:45678 输出87654

#!/bin/bash

read -p "输入一串整数:" num

sum=0

while [ $num -ne 0 ]

do

       ((sum=$sum*10))

       ((sum+=$num%10))

       ((num=$num/10))

done

echo 反转后:$sum

2.从终端输入字符串,求出小写字母的个数,大写字母的个数,数字的个数。

#!/bin/bash

read -p "输入字符串:" str
little=0
big=0
num=0
len=${#str}
i=0
while [ $i -le $len ]                     #从第一个字符开始遍历  
do
	var=${str:$i:1 }
	case $var in
		[0-9])                            #计算数字
		((num++))
		;;
	[A-Z])                                #计算大写字母
		((big++))
		;;
	[a-z])
		((little++))                      #计算小写字母  
		;;
esac
	((i++))
done

echo 数字$num个,小写字母$little个,大写字母$big个

 3.要求输入年月日,输出这是今年的第几天

#!/bin/bash

read -p "输入年月日:" year month day
sum=0
case $month in                     #取月份来计算日子
	1)
		sum=$day
		;;

	2) 
		((sum=$day+31))
		;;
	3)
		((sum=$day+59))
		;;
	4)
		((sum=$day+90))
		;;
	5)
		((sum=$day+120))
		;;
	6)
		((sum=$day+151))
		;;
	7)
		((sum=$day+181))
		;;
	8)
		((sum=$day+212))
		;;
	9)
		((sum=$day+243))
		;;
	10)
		((sum=$day+273))
		;;
	11)
		((sum=$day+304))
		;;
	12)
		((sum=$day+334))
		;;
	*)
		echo "月份输入错误"
		;;
esac

                              #判断平闰年,判断为平年时,若是在2月之后的月份,则总日子加1
if [ $[$year % 4] -eq 0 ] && [ $[ $year % 100] -ne 0 ] || [ $[ $year % 400 ] -eq 0 ]
then
	echo 是$year年的第$sum天
else
	if [ $month >2 ]
	then
		echo 是$year年的第$[$sum+1]天
	fi
fi

九九乘法表

#!/bin/bash

i=1
while [ $i -ne 10 ]
do
j=1
	while [ $j -le $i ]
	do
		echo -n " $i x $j = "$[ $i*$j ]
		((j++))
		done
	echo " "
	((i++))
Done

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值