É possível executar um script que leva a entrada do usuário, em seguida, executar outro script

1

Estou tentando executar:

  1. Script1: recebe senha para iniciar a VPN
  2. Script2: Script1 deve ser iniciado (mas não finalizado). Executa o desktop remoto

É possível executar os dois com um comando? Toda vez que eu tento Script1 & erros, mas funciona bem se eu executar Script1 . Não consigo fazer Script1 && Script2 porque o Script1 não terminou quando o Script2 precisa ser iniciado.

Script1:

VPNUSER=Rilcon42
VPNGRP=01
# =============================================================================

    # you shouldn't have to change anything below here
    VPNURL=https://remote.someserver.edu
    VPNSCRIPT=/usr/share/vpnc-scripts/vpnc-script

    sudo openvpn --mktun --dev tun1 && \
    sudo ifconfig tun1 up && \
    sudo /usr/sbin/openconnect -s $VPNSCRIPT $VPNURL --user=$VPNUSER --authgroup=$VPNGRP --interface=tun1

    sudo ifconfig tun1 down

Script2:

rdesktop 123.1234.23.1453
    
por Rilcon42 31.08.2016 / 02:52

2 respostas

0

script1 + 2:

VPNUSER=Rilcon42
VPNGRP=01
# =============================================================================

    # you shouldn't have to change anything below here
    VPNURL=https://remote.someserver.edu
    VPNSCRIPT=/usr/share/vpnc-scripts/vpnc-script

    sudo openvpn --mktun --dev tun1 && \
    sudo ifconfig tun1 up && \
    sudo /usr/sbin/openconnect -s $VPNSCRIPT $VPNURL --user=$VPNUSER --authgroup=$VPNGRP --interface=tun1 &

    rdesktop 123.1234.23.1453
    wait

    sudo ifconfig tun1 down
    
por 31.08.2016 / 03:27
0

A parte que lê a entrada do usuário do terminal precisa ser executada em primeiro plano. Na maioria das configurações, sudo precisa ser executado em primeiro plano.

Chame sudo no script inteiro. Chamar sudo separadamente para executar comandos sucessivos não faz muito sentido.

Supondo que openconnect não leia a entrada do usuário, altere Script para

VPNUSER=Rilcon42
VPNGRP=01
VPNURL=https://remote.someserver.edu
VPNSCRIPT=/usr/share/vpnc-scripts/vpnc-script

sudo -b sh -c '
  openvpn --mktun --dev tun1 &&
  ifconfig tun1 up && {
    /usr/sbin/openconnect -s "$1" "$2" --user="$3" --authgroup="$4" --interface=tun1
    ifconfig tun1 down
  }
' "$VPNSCRIPT" "$VPNURL" "$VPNUSER" "$VPNGRP"

e execute Script1 em primeiro plano, mas somente depois que a VPN estiver conectada (o que pode ser irritante de detectar - talvez fazendo ping no terminal remoto até que apareça).

Eu não estou familiarizado com o openconnect, então estou supondo o que ele faz. Se openconnect requer entrada do usuário do terminal e bloqueia até que a VPN seja desconectada, a execução em segundo plano não funcionará. Mas se é assim que funciona, provavelmente tem uma opção para entrar em segundo plano depois de ler a senha.

    
por 31.08.2016 / 03:30