Sair do terminal após o comando dd concluído

2

primeiro desculpe pelo mau inglês. Em segundo lugar, estou criando uma ferramenta de clonagem. Estou usando o comando

sudo mate-terminal --geometry=50x10 -x sh -c "sudo dd if=/dev/sda of=/dev/sdb status=progress; bash"

Estou usando este comando para que quando o usuário clicar no link do botão clone com o comando acima, o usuário possa ver o progresso da clonagem que exibe algum tipo de log de tempo restante e de transferência por segundo em um novo terminal como nesta foto.

O problema agora é que estou usando um dispositivo de tela sensível ao toque para criar essas ferramentas e, após a conclusão da clonagem, o terminal não sairá automaticamente. O usuário precisa clicar no botão "x" para fechar o terminal e isso seria um problema porque estou usando uma tela sensível ao toque de 3,5 "e pode ser bem difícil clicar no botão" x "em uma pequena tela sensível ao toque. processo de clonagem é feito ele exibe isso no terminal

Eu já tentei

exec ./clone.sh

e

./clone.sh && exit

e

./clone; exit

Mas todos falham.

Para sua informação, o comando é link para um botão, então meu comando é assim

(action)./clone.sh && exit(/action)

Alguém pode me ajudar?

    
por Najmi 06.10.2016 / 09:38

1 resposta

3

A razão pela qual o terminal permanece aberto é que você está dizendo para executar o comando dd e, em seguida, iniciar uma nova instância de bash. Se você remover o bash do final do comando, o terminal gerado desaparecerá conforme o esperado.

Além disso, não há motivo para executar o dd com sudo se você já estiver executando o terminal com sudo . Apenas um dos dois precisa ser executado com sudo , qual deles é sua. Você também não precisa do sh -c , já que só quer executar um único comando. Apenas use o -x diretamente.

Então, juntando tudo isso, o que você está procurando é:

sudo mate-terminal --geometry=50x10 -x dd if=/dev/sda of=/dev/sdb status=progress

IMPORTANTE : para qualquer pessoa que leia este Q & amp; A, este comando é perigoso, por isso não o execute no seu computador. Ele sobrescreverá o conteúdo do seu /dev/sdb se você tiver um. É o que o OP quer fazer, mas você não deve executá-lo a menos que saiba o que está fazendo.

    
por terdon 06.10.2016 / 14:04