扩展练习果汁售卖:
(1)显示饮品菜单以及对应价格
(2)用户选择自己喜欢的饮品,根据用户选择可以计算出对应价格。
[root@localhost fifth_job]# vim one.sh
#!/bin/bash
# 饮品菜单及对应价格
menu=("柠檬水" "烤奶" "西瓜汁" "可乐" "雪碧" "蜂蜜水" "酸奶")
prices=(15 10 8 5 5 12 5)
# 显示饮品菜单及价格
echo "欢迎光临果汁店!这里是我们的饮品菜单:"
for ((i=0; i<${#menu[@]}; i++)); do
echo "$(($i+1)). ${menu[$i]} - ¥${prices[$i]}"
done
# 用户选择饮品及数量
declare -A selections
while true; do
read -p "请选择您喜欢的饮品编号(输入相应数字)和数量(输入数字)[结束选择请输入0]: " choice quantity
if [[ $choice -eq 0 ]]; then
break
elif [[ $choice =~ ^[1-7]$ && $quantity =~ ^[1-9][0-9]*$ ]]; then
index=$(($choice-1))
selected_beverage=${menu[$index]}
price=${prices[$index]}
selections[$selected_beverage]=$quantity
else
echo "无效的选择!请重新输入。"
fi
done
# 计算总价
total_price=0
selected_beverages=""
for beverage in "${!selections[@]}"; do
quantity=${selections[$beverage]}
price=${prices[$index]}
sub_total=$((price * quantity))
total_price=$((total_price + sub_total))
selected_beverages+=",${quantity}杯${beverage}"
done
# 输出结果
if [[ $total_price -gt 0 ]]; then
echo "您选择了${selected_beverages:2},总价格为¥$total_price。"
else
echo "没有选择任何饮品。"
fi
1、显示/proc/meminfo文 件中以不区分大小的s开头的行:
[root@localhost ~]# grep -i '^s' /pro/meminfo
2、显示/etc/passwd中 以nologin结尾的行;
[root@localhost ~]# grep -i 'nologin$' /etc/passwd
3、取出默认shell为/sbin/nologin的用户列表
[root@localhost ~]# grep '/sbin/nologin' /etc/passwd
4、取出默认shell为bash,且其用户ID号最小的用户的用户名
[root@localhost ~]# grep 'bash$' /etc/passwd
5、显示/etc/inittab中 以#开头,且后面跟-一个或多个空白字符,而后又跟了任意非空白字符的行
[root@localhost ~]# grep '^#[[:space:]]+[^[:space:]]*' /etc/inittab
6、显示/etc/inittab中包含 了:一个数值 (即两个冒号中间一个数字的行
/etc/passwd 多个冒号之间的数值匹配显示
[root@localhost ~]# grep ':[0-9]:' /etc/inittab
[root@localhost ~]# grep '(:[0-9]+)+:' /etc/passwd
7、显示/boot/grub2/grub.cfg文件中以一个或多个空白字符开头的行:
[root@localhost ~]# grep "^\s+" /boot/grub2/grub.cfg
8、显示/etc/inittab文件中以一个数字开头并以一个与开头数字相同的数字结尾的行;
[root@localhost ~]# grep '^([0-9]).*\1$' /etc/inittab
9、找出/proc/cpuinfo中的,1位数,或2位数;
[root@localhost ~]# grep -v '(\.[0-9]+)|([0-9]+\.)' /proc/cpuinfo | grep '\b[0-9]{1,2}\b' | wc -l
10、查找当前系统上名字为student(必须出现在行首)的用户的账号的相关信息,文件为/etc/passwd
[root@localhost ~]# grep '^student\b' /etc/passwd