1使用case..in实现等级判断,
输入一个成绩,
判断等级
90-100A 70-89B0-69C
#!/bin/bash
# 提示用户输入成绩
echo "请输入成绩:"
read score
# 使用case...in语句判断成绩等级
case "$score" in
[9][0-9] | 100)
echo "等级:A"
;;
[7-8][0-9])
echo "等级:B"
;;
[0-6][0-9])
echo "等级:C"
;;
*)
echo "输入无效,请输入一个0-100之间的成绩。"
;;
esac
2任意输入一个数,使用while循环计算各个位数字之和
1234----
#!/bin/bash
# 提示用户输入一个数
echo "请输入一个数:"
read number
sum=0
temp=$number
# 使用while循环计算各个位数字之和
while [ $temp -ne 0 ]; do
digit=$(( temp % 10 ))
sum=$(( sum + digit ))
temp=$(( temp / 10 ))
done
echo "各个位数字之和为:$sum"
3.输入一个字符串,使用while循环实现字符串逆置
hello---->olleh
#!/bin/bash
# 提示用户输入一个字符串
echo "请输入一个字符串:"
read str
reverse=""
length=${#str}
index=$(( length - 1 ))
# 使用while循环实现字符串逆置
while [ $index -ge 0 ]; do
reverse="$reverse${str:$index:1}"
index=$(( index - 1 ))
done
echo "逆置后的字符串为:$reverse"
4
#!/bin/bash
# 初始化计数器
a_count=0
file_count=0
# 遍历家目录下的所有内容
for item in ~/*; do
if [ -d "$item" ]; then
((a_count++))
elif [ -f "$item" ]; then
((file_count++))
fi
done
# 输出结果
echo "家目录下的目录个数: $a_count"
echo "家目录下的普通文件个数: $file_count"
~
5打印图形
#!/bin/bash
for ((i=1;i<=4;i++))
do
for ((j=1;j<=i;j++))
do
echo -n "*"
done
echo -e -n "\n"
done
~
6输入一个数组,请实现冒泡排序,插入排序
#!/bin/bash
# 定义一个数组
read -p "请输入一个数组" -a arr
# 获取数组长度
n=${#arr[@]}
# 冒泡排序算法
for ((i = 0; i < n-1; i++)); do
for ((j = 0; j < n-i-1; j++)); do
if [ ${arr[j]} -gt ${arr[$((j+1))]} ]; then
# 交换元素
temp=${arr[j]}
arr[j]=${arr[$((j+1))]}
arr[$((j+1))]=$temp
fi
done
done
# 输出排序后的数组
echo "冒泡排序后的数组: ${arr[@]}"
#!/bin/bash
# 定义一个数组
read -p "请输入一个数组 " -a arr
# 获取数组长度
n=${#arr[@]}
# 插入排序算法
for ((i = 1; i < n; i++)); do
key=${arr[i]}
j=$((i - 1))
# 将大于key的元素向后移动一位
while [[ $j -ge 0 && ${arr[j]} -gt $key ]]; do
arr[$((j + 1))]=${arr[j]}
j=$((j - 1))
done
arr[$((j + 1))]=$key
done
# 输出排序后的数组
echo "插入排序后的数组: ${arr[@]}"
7.登录系统
登录系统输入用户名和密码(加密输入),实现密码的三次登录 默认用户名admin 密码1234 账户存款10000
如果登录失败,则提示
第1次登录失败,还有2次机会
第2次登录失败,还有1次机会
第3次登录失败,账户被锁定
如果登录成功,则显示银行页面
1.账户余额
2款
3.存款
如果选择1,则打印当前的余额
如果选择2,则输入取款金额,如果取款金额大于实际金额,则提示账户余额不足,请重新输入,如果账户余额小于等于实际
金额,则提示取款成功,剩余金额
如果选择3,则输入存款金额,并提示存款成功,余额的值
#!/bin/bash
# 默认用户名和密码
USERNAME="admin"
PASSWORD="1234"
BALANCE=10000
# 登录函数
login() {
local attempts=3
while [ $attempts -gt 0 ]; do
echo "请输入用户名:"
read input_username
echo "请输入密码(加密输入):"
read -s input_password
if [[ "$input_username" == "$USERNAME" && "$input_password" == "$PASSWORD" ]]; then
echo "登录成功!"
return 0
else
attempts=$((attempts - 1))
if [ $attempts -eq 0 ]; then
echo "第3次登录失败,账户被锁定"
exit 1
else
echo "第$((4 - $attempts))次登录失败,还有$attempts次机会"
fi
fi
done
}
# 显示菜单
show_menu() {
echo "请选择操作:"
echo "1. 查看账户余额"
echo "2. 取款"
echo "3. 存款"
echo "4. 退出"
}
# 主程序
main() {
login
while true; do
show_menu
read choice
case $choice in
1)
echo "当前余额:$BALANCE"
;;
2)
echo "请输入取款金额:"
read amount
if [ $amount -gt $BALANCE ]; then
echo "账户余额不足,请重新输入"
else
BALANCE=$((BALANCE - amount))
echo "取款成功,剩余金额:$BALANCE"
fi
;;
3)
echo "请输入存款金额:"
read amount
BALANCE=$((BALANCE + amount))
echo "存款成功,余额的值:$BALANCE"
;;
4)
echo "退出系统"
exit 0
;;
*)
echo "无效的选择,请重新输入"
;;
esac
done
}
# 运行主程序
main