我有一个非常重要的项目,需要一个菜单来执行一些bash脚本。发生的事情是该代码可以正常运行,但是在执行其中一个选项后不会返回菜单。你能帮我吗?
#!/bin/bash
PS3='Escolha uma opção: '
options=("Cria condutor" "Cria passageiros" "Lista negra" "Atualiza condutores" "Stats" "Sair")
clear
select opt in "${options[@]}";
do
case $opt in
"Cria condutor")
echo "Insira o número de estudante: "
read nestudante
echo "Insira o primeiro e Último nome: "
read nome
echo "Insira a sua turma: "
read turma
echo "Insira o número de telemóvel: "
read ntelemovel
echo "Insira o seu e-mal: "
read email
echo "Insira o tipo de viatura (carro ou mota): "
read tipo
echo "Insira a marca do veículo: "
read marca
echo "Insira a matrícula: "
read matricula
exec ./cria_condutor.sh $nestudante $nome $turma $ntelemovel $email $tipo $marca $matricula
break;;
"Cria passageiros")
exec ./cria_passageiros.sh
;;
"Lista negra")
exec ./lista_negra.sh
;;
"Atualiza condutores")
exec ./atualiza_condutores.sh
;;
"Stats")
exec ./stats.sh
;;
"Sair")
break
;;
*) echo "invalid option $REPLY";;
esac
done
答案 0 :(得分:1)
您使用exec
用您所称的内容来替换当前进程。只需剥离exec
来创建一个子进程,等待其终止,然后继续执行脚本:
read matricula
./cria_condutor.sh $nestudante $nome $turma $ntelemovel $email $tipo $marca $matricula
break;;