1:无符号整数,不考虑翻转后超出范围的情况,将这个整数中每位上的数字进行反转。
#!/bin/bash
read var
b=0
len=${#var}
for ((i=1;i<=len;i++))
do
a="$a${var:0-i:1}"
done
echo "$a"
演示结果:
2. 从终端输入字符串,求出小写字母的个数,大写字母的个数,数字的个数。
#!/bin/bash
export LC_ALL=C
read -p "请输入字符串:" string
len=${#string}
num1=0
num2=0
num3=0
for ((i=0;i<$len;i++))
do
char=${string:$i:1}
case "$char" in
[a-z])
((num1++))
;;
[A-Z])
((num2++))
;;
[0-9])
((num3++))
;;
esac
done
echo "小写字母的个数为:$num1"
echo "大写字母的个数为:$num2"
echo "数字的个数为:$num3"
演示结果:
3. 要求输入年月日,输出这是今年的第几天
#!/bin/bash
read -p "请输入年份:" year
read -p "请输入月数:" month
read -p "请输入天数" day
if [ $((year%4)) -eq 0 -a $((year%100)) -ne 0 ] | [ $((year%400)) -eq 0 ]
then
case $month in
1)
echo "这是$year年的第$day天"
;;
2)
echo "这是$year年的第$((day+31))天"
;;
3)
echo "这是$year年的第$((day+31+29))天"
;;
4)
echo "这是$year年的第$((day+31+29+31))天"
;;
5)
echo "这是$year年的第$((day+31+29+31+30))天"
;;
6)
echo "这是$year年的第$((day+29+92+31))天"
;;
7)
echo "这是$year年的第$((day+29+123+30))天"
;;
8)
echo "这是$year年的第$((day+213))天"
;;
9)
echo "这是$year年的第$((day+244))天"
;;
10)
echo "这是$year年的第$((day+274))天"
;;
11)
echo "这是$year年的第$((day+305))天"
;;
12)
echo "这是$year年的第$((day+335))天"
;;
esac
else
case $month in
1)
echo "这是$year年的第$day天"
;;
2)
echo "这是$year年的第$((day+31))天"
;;
3)
echo "这是$year年的第$((day+31+28))天"
;;
4)
echo "这是$year年的第$((day+31+28+31))天"
;;
5)
echo "这是$year年的第$((day+31+28+31+30))天"
;;
6)
echo "这是$year年的第$((day+28+92+31))天"
;;
7)
echo "这是$year年的第$((day+28+123+30))天"
;;
8)
echo "这是$year年的第$((day+213-1))天"
;;
9)
echo "这是$year年的第$((day+244-1))天"
;;
10)
echo "这是$year年的第$((day+273))天"
;;
11)
echo "这是$year年的第$((day+304))天"
;;
12)
echo "这是$year年的第$((day+334))天"
;;
esac
fi
结果演示: