我的任务是制作一个有两种不同变体的用户菜单,一个用于新手用户,另一个用于专家。
我调用了我所有的新手脚本,但为了调用我的专家脚本,我的主脚本需要检测用户是否通过了诸如";帮助,人,地位;等等。如果他们这样做了,我需要我的主脚本在这种情况下调用专家脚本。
我是bash脚本的新手,所以我希望能在这里得到一些指导。
#!/bin/bash
echo -n "Name please? "
read name
echo "Menu for $name"
echo "===================================================="
echo -e "Enter
( 1 ) File and Directory Managment CommandsnEnter
( 2 ) Text Processing CommandsnEnter
( 3 ) System Status CommandsnEnter
( 4 ) Exit"
echo "Enter your choice :"
read en
case "$en" in
1)sh ./fileNovice.sh;;
2)sh ./textNovice.sh;;
3)sh ./systemStatusNovice.sh;;
4)echo "Good Bye..."
sleep 0;;
*)echo "Wrong Option selected" ;;
esac
不要重新发明轮子并使用Bash的select
:
#!/usr/bin/env bash
declare -a level_names=([0]='Novice' [1]='Expert')
declare -i level=0
while :; do
printf 'Current mode : %sn' "${level_names[level]}"
PS3='Enter your choice : '
select _ in
'File and Directory Managment Commands'
'Text Processing Commands'
'System Status Commands'
"Switch to ${level_names[level ^ 1]} mode"
'Exit'; do
case "$REPLY" in
1) bash "./file${level_names[level]}.sh"; exit ;;
2) bash "./text${level_names[level]}.sh"; exit ;;
3) bash "./systemStatus${level_names[level]}.sh"; exit ;;
4) level=$((level ^ 1)); break ;;
5) exit ;;
*) echo 'Wrong Option selected'; break ;;
esac
done
done