Meu script bash não está mostrando a janela do console quando executado

0

Eu fiz um script bash que recebe um formulário de entrada do usuário:

#!/bin/bash
# mnthere - mounts virtual box share in current working directory
echo Enter the source share name:
readline NAME
sudo -- mount -t vboxsf -o rw,uid=1000,gid=1000 $NAME $0

Mas quando clico duas vezes, nada acontece. Ele é executado em segundo plano, provavelmente, com erro. Eu preciso configurá-lo para mostrar essa janela, como faço isso? Isso está relacionado ao ambiente de desktop XFCE4 que estou usando?

    
por Tomáš Zato 01.10.2015 / 10:51

3 respostas

2

Se você não quiser modificar o lançador, você pode verificar no início do script se ele está sendo executado em um terminal. Se não for, abra um terminal e reinicie o script lá. No topo do script:

if [ ! -t 1 ]; then
    args=''
    for arg in "$@"; do
        args="$args \"${arg//\"/\\"}\""
    done
    xfce4-terminal -e "$0 $args"
    exit 0
fi

Então, se houver alguma saída de terminal para exibir ao usuário, adicione isso ao final:

read -n1 -u1 -rp 'Press any key to close this window.'
    
por 01.10.2015 / 14:16
0

Inicie um xterm executando seu script em vez de apenas executar seu script e adicionar um comando read , por exemplo, para interromper a saída e poder ler.

gnome-terminal -x your_script

    
por 01.10.2015 / 10:56
0

Se você editar o lançador (clique com o botão direito do mouse, selecione Propriedades e, em seguida, clique no botão de edição), uma das opções será uma caixa de seleção "Executar no terminal".

Verifique isso e seu script será executado em um terminal.

    
por 01.10.2015 / 13:11