1. 无符号整数,不考虑翻转后超出范围的情况,你需要将这个整数中每位上的数字进行反转。
输入:123 输出321
输入:45678 输出87654
#!/bin/bash
read -p "请输入一串数字>>" num
a=${#num}
for ((i=1;i<=$a;i++))
do
echo -n ${num:0-i:1}
done
echo
2. 从终端输入字符串,求出小写字母的个数,大写字母的个数,数字的个数。
(未更改本地语序先更改本地语序↑)
#!/bin/bash
read -p "请输入一串字符串>>" str
len=${#str}
daxie=0
xiaoxie=0
num=0
for ((i=0;i<len;i++))
do
case ${str:i:1} in
[a-z])
((xiaoxie++))
;;
[A-Z])
((daxie++))
;;
[0-9])
((num++))
;;
esac
done
echo "daxie=$daxie"
echo "xiaoxie=$xiaoxie"
echo "num=$num"
3. 要求输入年月日,输出这是今年的第几天
#!/bin/bash
read -p "请输入年>> " year
read -p "请输入月>> " mounth
read -p "请输入日>> " day
case $mounth in
"12")
((num=334))
;;
"11")
((num=314))
;;
"10")
((num=273))
;;
"9")
((num=243))
;;
"8")
((num=212))
;;
"7")
((num=181))
;;
"6")
((num=151))
;;
"5")
((num=120))
;;
"4")
((num=90))
;;
"3")
((num=59))
;;
"2")
((num=31))
;;
"1")
((num=0))
;;
esac
if [ $mounth -gt 2 ]
then
if [ $(($year%4)) -eq 0 -a $(($year%100)) -ne 0 ] || [ $(($year%400)) -eq 0 ]
then
((num+=1))
fi
fi
echo "这是$year年的第$(($num+$day))天"