Executa vários comandos em uma janela de terminal do bash

0

De um script bash, quero abrir uma janela LXTerminal e executar vários comandos, por exemplo:

lxterminal -e "echo 'Hello' && sleep 5"

Ele nem lê o primeiro comando (como tentei inverter a ordem) e não funciona com uma simples cadeia command1 ; command2 . Obviamente, funciona com um único comando.

Alguma ideia? Obrigado antecipadamente.

    
por Juan 14.08.2016 / 17:14

3 respostas

1

Este é um bug documentado com o lxterminal. Você tem um programa de terminal alternativo disponível? xterm, gnome-terminal etc? O lxterm (diferente do lxterminal) tem suporte total para o que você está tentando fazer, o que é discutido no relatório de bug. Eu não tenho acesso fácil a esse pacote do meu ambiente e não olhei para ele.

Uma solução totalmente funcional seria gerar um script de shell que contenha sua sequência de comandos e ter o comando passado para o lxterminal simplesmente como esse script.

Por exemplo, na seção do seu script que faz essa chamada lxterminal, faça algo assim:

tmpScript=$(mktemp -u) || { echo "tmp file generation error!"; exit 1; }
echo '#!/bin/bash' > $tmpScript
echo "echo 'Hello' && sleep 5" >> $tmpScript
chmod +x $tmpScript
lxterminal -e "$tmpScript"

Isso funciona, pelo menos no meu ambiente (alimentado 24; x86_64; lxterminal versão 0.2.0, kernel 4.6.5).

A menos que o lxterminal seja sua única opção, não é a ferramenta certa para esse trabalho. Considerando a idade desse bug, provavelmente nunca será. O xterm é tipicamente a opção mais popular para esse tipo de coisa, por portabilidade e facilidade de uso, embora eu seja parcial para o konsole.

    
por 14.08.2016 / 17:38
0

Você pode usar qualquer outro terminal onde isso esteja funcionando. Por exemplo, em xterm , isso está funcionando:

xterm -e "echo 'Hello' && sleep 5"

Como xterm é um emulador de terminal padrão para o X, essa também deve ser uma solução para você.

    
por 14.08.2016 / 17:30
0

A solução é fazê-lo com um modificador de comando como esse; lxterminal --command cd ~ / some / catalog & & eco 'Olá'

    
por 11.01.2018 / 12:32