如何创建一个菜单以执行带有选择循环的某些bash脚本?

时间:2018-10-12 14:43:35

标签: bash

我有一个非常重要的项目,需要一个菜单​​来执行一些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

1 个答案:

答案 0 :(得分:1)

您使用exec用您所称的内容来替换当前进程。只需剥离exec来创建一个子进程,等待其终止,然后继续执行脚本:

read matricula
./cria_condutor.sh $nestudante $nome $turma $ntelemovel $email $tipo $marca $matricula
break;;