禅城区网站建设bt搜索引擎
1.使用case..in实现等级判断,输入一个成绩,判断等级
90-100A 70-89B 0-69C
#!/bin/bash
read -p "请输入学生成绩:" a
case $a in9[0-9])echo 等级为A;;[7-8][0-9])echo 等级为B;;[0-6][0-9])echo 等级为C;;
esac
运行结果:
2.任意输入一个数,使用while循环计算各个位数字之和
1234---->10
#!/bin/bash
read -p "请输入一个数:" a
while [ $((a%10)) -ne 0 ]
do((sum+=a%10))a=$((a/10))
done
echo 各位和为$sum
运行结果:
3.输入一个字符串,使用while循环实现字符串逆置
hello---->olleh
#!/bin/bash
read -p "请输入字符串:" a
str=$a
len=${#str}
i=0
b=
while [ $i -le $len ]
do ((i++))b=$b${str:0-i:1}
done
echo $b
运行结果:
4.4.循环家目录下的所有内容,计算家目录下目录的个数,普通文件的个数,使用for循环
#!/bin/bash
a=0
b=0
for item in ~/*
doif [ -d "$item" ]then((a++))elif [ -f "$item" ]then ((b++))fi
doneecho 目录个数为:$aecho 普通文件个数为:$b
运行结果:
5.打印图形
*
***
*****
*******
#!/bin/bash
for((i=1;i<4;i++))
dofor((j=0;j<=4-i;j++))doecho -n " "donefor((k=0;k<2*i-1;k++))doecho -n "*"doneecho
done
运行结果:
6.输入一个数组,请实现冒泡排序,插入排序
#!/bin/bash
read -p "请输入一个数组:" -a arr
n=${#arr[@]}temp=0
for((i=0;i<n-1;i++))
dofor((j=0;j<n-i-1;j++))doif [ ${arr[j]} -gt ${arr[j+1]} ]thentemp=${arr[j]}arr[j]=${arr[j+1]}arr[j+1]=$tempfidone
done
echo "冒泡排序结果: ${arr[@]}"read -p "请输入一个数组:" -a arr1
insert_arr=("${arr1[@]}")
n=${#insert_arr[@]}
for ((i=1; i<n; i++))
dokey=${insert_arr[i]}j=$((i-1))while ((j >= 0 && insert_arr[j] > key))
doinsert_arr[j+1]=${insert_arr[j]}((j--))doneinsert_arr[j+1]=$key
done
echo "插入排序结果: ${insert_arr[@]}"
运行结果:
7.输入用户名和密码(加密输入),实现密码的三次登录 默认用户名admin 密码1234 账户存款10000
如果登录失败,则提示
第1次登录失败,还有2次机会
第2次登录失败,还有1次机会
第3次登录失败,账户被锁定
如果登录成功,则显示银行页面
1.账户余额
2.取款
3.存款
如果选择1,则打印当前的余额
如果选择2,则输入取款金额,如果取款金额大于实际金额,则提示账户余额不足,请重新输入,如果账户余额小于等于实际金额,则提示取款成功,打印剩余金额
如果选择3,则输入存款金额,并提示 存款成功,余额的值
#!/bin/bash
set_user=admin
set_password=1234
balance=10000
for((i=1;i<=3;i++))
doread -p "请输入用户名:" usernameread -p "请输入密码:" passwordecho
if [ "$username" == "$set_user" ] && [ "$password" == "$set_password" ]thenecho 登陆成功break
elseif [ $i -eq 3 ]thenecho 账户被锁定else echo 第$i次登录失败,还有$((3-i))次机会fi
fi
donewhile true; doecho -e "\n======================="echo "1. 账户余额"echo "2. 取款"echo "3. 存款"echo "======================="read -p "请选择操作: " choicecase $choice in1)echo "当前余额: ${balance}元";;2)while true; doread -p "请输入取款金额: " amount# 验证数字格式且大于0if [[ ! $amount =~ ^[0-9]+$ || $amount -le 0 ]]; thenecho "输入错误:必须为正整数"elif (( amount > balance )); thenecho "余额不足,当前余额: ${balance}元"else(( balance -= amount ))echo "取款成功!剩余金额: ${balance}元"breakfidone;;3)while true; doread -p "请输入存款金额: " amount# 验证数字格式且大于0if [[ ! $amount =~ ^[0-9]+$ || $amount -le 0 ]]; thenecho "输入错误:必须为正整数"else(( balance += amount ))echo "存款成功!当前余额: ${balance}元"breakfidone;;*)echo "无效选项,请重新输入";;esac
done
运行结果: