菜单不想使用功能

时间:2013-04-28 17:46:27

标签: bash shell unix ubuntu menu

我正在做一个基于菜单的程序,我试图将一个函数作为菜单选择之一。在这种情况下,它是第一选择。但是,如果我按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

2 个答案:

答案 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”工作的开头添加明确的声明