我试图捕获CtrlC或CtrlZ清除屏幕并重复循环而不退出 - 它正在工作,但我需要按下Enter才能重复循环。
#!/bin/bash
trap 'clear' 2 20
while :
do
clear
echo -e "\n\t1. Create a user"
echo -e "\t2. Create a Group"
echo -e "\t3. Delete user"
echo -e "\t4. Reset Password"
echo -e "\n\tSelect one of the option : \c"
read OPT
done
按下CtrlC或 时CtrlZ会清除屏幕,但不会再次显示菜单。
我想用它作为登录脚本,用户登录后,只让此菜单工作。如果用户输入CtrlC或CtrlZ脚本必须重新显示菜单,而无需进入 shell。
答案1
#!/bin/bash
trap 'menu' 2 20
menu()
{
clear
echo -e "\n\t1. Create a user"
echo -e "\t2. Create a Group"
echo -e "\t3. Delete user"
echo -e "\t4. Reset Password"
echo -e "\n\tSelect one of the option : \c"
}
while :; do
menu
read OPT
done
如果你不想按 Enter 键重复循环,请将读取命令更改为:
read -n 1 OPT