Comando Bash para abrir o terminal do sistema [duplicado]

3

Estou fazendo um instalador de Linux para o Zero-K, um jogo RTS de código aberto (zero-k.info). Ele usará zenity para dialogs , mas para esse zenity deve ser instalado. Como muitas pessoas ainda não terão zenity , elas devem ser instaladas pelo script.

Eu não gostaria de instalar algo no sistema de um usuário sem uma abertura de terminal e dar algum feedback. Se não houver feedback, pode parecer que nada estava acontecendo quando está realmente ocupado instalando as coisas. O problema é que o script teria que abrir xfce4-terminal ou gnome-terminal ou outro terminal específico de DE, o que significa que terá que haver um script diferente por DE.

Existe um comando para abrir qualquer terminal usado pelo OS / DE em que o script é usado?

    
por TheSponge 03.11.2013 / 19:53

2 respostas

3

Até onde eu sei, xterm é o emulador de terminal padrão para o X Window System. Portanto, ele deve ser instalado em qualquer sistema semelhante ao Linux. Para abri-lo com um comando em execução, você pode usar:

xterm -e "command [args]"

Veja também man xterm e xterm -help .

Se você quiser verificar a existência de alguns outros emuladores de terminal fora de xterm , você pode usar, por exemplo:

if hash gnome-terminal 2>/dev/null; then #if gnome-terminal exists
    gnome-terminal -e "command [args]"
elif hash konsole 2>/dev/null; then #if konsole exists
    konsole -e "command [args]"
#check the existence of some other terminal emulators here
else #you don't need to check the existence of xterm; this should be installed in any Linux like system
    xterm -e "command [args]"
    
por 03.11.2013 / 20:20
0

Debian e derivados (Ubuntu, Mint, etc) usam /usr/bin/x-terminal-emulator , que é um link simbólico gerenciado pelo sistema de alternativas do debian para que ele sempre aponte para o emulador de terminal preferido do sistema.

Isso não ajuda você com o RHEL, o Fedora, o Slackware ou muitas outras distribuições, mas você pode verificar a existência /usr/bin/x-terminal-emulator ao implementar a resposta do Radu.

    
por 05.11.2013 / 04:08