imprime a saída de dois comandos para o mesmo terminal

2

Estou usando o Ubuntu 16.04.2, tenho um ícone na área de trabalho que leva a um script no meu diretório $HOME/bin . Este script usa dois scripts no diretório $HOME/bin . Ele abre um terminal e imprime o script de saída. Em seguida, ele abre um segundo terminal e imprime a saída do script dois.

Eu gostaria que ele imprimisse todos os dados para apenas um terminal. O produto final deve ser que, quando eu clicar no ícone da minha área de trabalho, todos os dados serão impressos em apenas um terminal.

Muito obrigado pelas suas sugestões

#!/bin/bash
gnome-terminal -e "bash -c $HOME/bin/bin_old/bk_up;bash" && gnome-terminal -e "bash -c $HOME/bin/bin_old/win_bkp;bash"
    
por Richard Hill 09.03.2017 / 14:53

2 respostas

0

Com ajuda considerável de Ricardo Rodrigues. Aqui está a solução que melhor se adapta ao que estou tentando alcançar. Se a primeira parte do código for bem sucedida, a segunda parte do código será executada. Se não obtiver êxito, uma janela de terminal será aberta informando onde encontrar detalhes dos erros. Se o segundo trecho de código for bem-sucedido, eu saberei com certeza que meu sistema foi submetido a backup localmente e também copiado para um sistema remoto e, em seguida, encerrado localmente. No entanto, se houver erros, ele abrirá uma janela de terminal e me informará onde encontrar os detalhes dos erros. Como você pode ver, desisti de tentar que tudo fosse exibido em uma única janela de terminal pop-up. Isso parece ser simples para mim. Agora, quando clico no ícone da área de trabalho, o sistema faz backup em um sistema local e remoto e, em seguida, desliga ou recebo uma mensagem de erro em um terminal pop-up.

#!/bin/bash
if bk_up 2> $HOME/local_errors     # backup to local directory
then
    if win_bkp 2> $HOME/remote_errors  # backup to remote system
    then
        shutdown now
        exit
    else
        echo "echo Remote errors. Check remote_errors file" > $HOME/warn2
        chmod ugo+x $HOME/warn2 # needs to be executable for gnome-termial to work.
        gnome-terminal -e "bash -c $HOME/warn2;bash"
        exit
    fi
else
   echo "echo Local errors. Check local_errors file" > $HOME/warn1
   chmod ugo+x $HOME/warn1  # need to be executable for gnome-terminal to work.
   gnome-terminal -e "bash -c $HOME/warn1;bash"
   exit
   exit
fi
    
por Richard Hill 15.03.2017 / 02:24
4

Em vez de abrir um segundo terminal gnome, basta executar os dois comandos no primeiro.

#!/bin/bash
gnome-terminal -e "bash -c $HOME/bin/bin_old/bk_up;$HOME/bin/bin_old/win_bkp;bash"

EDITAR

Do que foi discutido nos comentários, o que Richard quer é algo assim:

#!/bin/bash
$HOME/bin/bin_old/bk_up
if [ $? -eq 0 ]; then
    $HOME/bin/bin_old/win_bkp
fi

Basicamente, ele executa o primeiro script e, se executado com sucesso (sem retornar erros), executa o segundo script.

    
por Ricardo Rodrigues 09.03.2017 / 15:05