根据传递的参数从正在运行的脚本中调用不同的bash脚本



我的任务是制作一个有两种不同变体的用户菜单,一个用于新手用户,另一个用于专家。

我调用了我所有的新手脚本,但为了调用我的专家脚本,我的主脚本需要检测用户是否通过了诸如";帮助,人,地位;等等。如果他们这样做了,我需要我的主脚本在这种情况下调用专家脚本。

我是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

相关内容

  • 没有找到相关文章

最新更新