bash script para iniciar scripts python com base na palavra de entrada

0

Eu tenho dois scripts python (direct.py e nat.py) e gostaria de fazer um script bash para selecionar qual python iniciar com base na minha entrada.

Além disso, quando executando manualmente os scripts py eu tenho opções de entrada (0 ... 8, heq). Quando pressionar 'q' eu tenho sys.exit ().

por exemplo:

./start.sh and output should be something like:
Chose your mode: (if type nat)
python3 nat.py

agora o script python é exibido e, se pressionar q, volta ao bash para escolher a opção.

    
por Boris 23.10.2018 / 10:37

3 respostas

0

Configure um loop infinito com um prompt para a entrada do usuário; se a entrada corresponder a uma das opções, então (aqui, finja) execute essa opção. Se eles digitarem uma opção inválida, diga a eles; se eles querem sair, deixe-os sair. Quando o usuário sair do script python correspondente (ou inserir uma opção inválida), ele retornará ao loop para escolher uma opção novamente.

#!/bin/sh

while :
do
  printf 'Choose your mode (nat or direct) or q to quit: '
  read REPLY
  case $REPLY in
    (nat)       echo python3 nat.py
        ;;
    (direct)    echo python3 direct.py
        ;;
    (q)         break
        ;;
    (*)         echo Unknown option
        ;;
  esac
done
    
por 23.10.2018 / 12:07
0

Obrigado por respostas.
Na verdade eu fiz isso via atexit de py scripts.

def change ():
    importar subprocess
    subprocess.call ("/ home / VPN / vpn.sh", shell = True)

import atexit
atexit.register (alterar)

def quit (param):
    importar sys
    sys.exit ()

    
por 23.10.2018 / 12:21
0

Com bash , convém considerar o select incorporado como

select R in nat direct quit; do [ $REPLY -ge 3 ] && break; echo python3 $R.py; done
    
por 23.10.2018 / 13:35