我正在做一个基于菜单的程序,我试图将一个函数作为菜单选择之一。在这种情况下,它是第一选择。但是,如果我按1没有任何反应,但脚本工作(我已测试过)。当我按2程序存在时,如果我按任何不同于1或2的数字,它会发出警告,表明它不是一个有效的选择。
你能帮忙吗? 谢谢#!/bin/bash
one() {
who |
awk '
{ User [$1]++; }
BEGIN { printf "|%-15s| |%15s|\n\n", "Username", "Session Count" }
END { for (i in User) printf "|%-15s| |%15s|\n", i, User [i] }
'
}
while [ 1 ]
do
clear
echo "1. Display current users with session counts"
echo "2. Exit"
read -p "Enter your menu choice [1 - 2]:" choice
case $choice in
1)
one;;
2)
exit 0;;
*) read -p "Wrong selection!!! Press [Enter] to continue..." dummyChoice;;
esac
done
答案 0 :(得分:1)
你的脚本很好。只是您拥有的clear
语句清除屏幕,因此您无法看到与案例1
对应的输出。
删除clear
或
在继续循环之前添加read
语句:
while [ 1 ]
do
clear
echo "1. Display current users with session counts"
echo "2. Exit"
read -p "Enter your menu choice [1 - 2]:" choice
case $choice in
1)
one;;
2)
exit 0;;
*) read -p "Wrong selection!!! Press [Enter] to continue..." dummyChoice;;
esac
read # so you can see the output before the next iteation
done
答案 1 :(得分:1)
可以在功能“One”工作的开头添加明确的声明