1.分数等级
read b
case $b in
100|9[0-9])
echo "A" ;;
7[0-9]|8[0-9])
echo "B" ;;
[1-6][0-9]|[0-9])
echo "C" ;;
*)
echo "无效分数" ;;
esac
2.数位之和
#!/bin/bash
read num
while [ $num -ne 0 ]
do
mod=$((num%10))
sum=$((sum+mod))
num=$((num/10))
done
echo sum=$sum
3.
#!/bin/bash
a=hello
i=4
while [ $i -ge 0 ]
do
b=${a:0-$i:1}
echo -n $b
((i--))
done
4.查看文件
#!/bin/bash
num=0
numb=0
for var in "ls /home/ubuntu/*"
do
if [ -d "$var" ]
then
((num++))
elif [ -f "$var" ]
then
((numb++))
fi
done
echo num="目录$num个"
echo numb="普通文件$numb个"
5.金字塔
#!/bin/bash
for ((i=1;i<5;i++))
do
for ((j=1;j<5-i;j++))
do
echo -n " "
done
for ((k=1;k<=2*i-1;k++))
do
echo -n "*"
done
echo
done
5.冒泡
#!/bin/bash
read -a a
len=${#a[@]}
for ((j=1;j<$len;j++))
do
for ((i=0;i<$len-j;i++))
do
if [ ${a[$i]} -lt ${a[$i+1]} ]
then
temp=${a[$i]}
a[$i]=${a[$i+1]}
a[$i+1]=$temp
fi
done
done
for ((i=0;i<$len;i++))
do
echo a[$i]=${a[$i]}
done
6.插入排序
#!/bin/bash
read -a arr
len=${#arr[@]}
for ((i=1;i<len;i++))
do
temp=${arr[$i]}
for((j=i-1;j>=0;j--))
do
if [ $temp -lt ${arr[$j]} ]
then
arr[$j+1]=${arr[$j]}
fi
done
arr[j+1]=$temp
done
for ((i=0;i<len;i++))
do
echo arr[$i]=${arr[$i]}
done
7.
user="admin"
passwd="1234"
flag=0
money=10000
for ((i=0;i<3;i++))
do
read -p "请输入用户名: " input_user
read -s -p "请输入密码: " input_pass
echo
if [ "$input_user" != "$user" ]
then
echo "没有该用户"
elif [ "$input_user" = "$user" ]
then
if [ "$input_pass" != "$passwd" ]
then
echo "密码错误"
elif [ "$input_pass" = "$passwd" ]
then
flag=1
break
fi
if [ $i -eq 2 ]
then
echo "密码三次错误,请退出"
else
echo "您还有$((3-i-1))次机会"
fi
fi
done
if [ $flag -eq 1 ]
then
echo "登陆成功!"
select choice in "账户余额" "取款" "存款"
do
case $choice in
"账户余额")
echo "您账户余额为:$money¥";;
"取款")
while true;
do
read -p "请输入取款金额: " moneyout
if [ $moneyout -gt $money ];
then
echo "账户余额不足,请重新输入取款金额"
else
money=$((money - moneyout))
echo "取款成功,剩余余额: $money"
break
fi
done;;
"存款")
read -p "请输入存款金额: " moneyin
money=$((money + moneyin))
echo "存款成功,当前余额: $money";;
*)
echo "输入无效";;
esac
done
elif [ $flag -eq 0 ]
then
echo "密码三次错误,请退出"
fi