executa dois comandos na tela separada

5

Estou tentando baixar um arquivo com wget , mas em segundo plano e dentro de uma tela que se destaca ...

Meu comando inicial foi:

wget http://www.example.com/file.zip -O temp/file.zip; mv temp/file.zip downloads/file.zip;

Isso moveria bem o arquivo depois de baixado, impedindo que eu lide com downloads/ arquivos enquanto eles ainda fazem download em segundo plano.

Agora preciso executar isso em backgorund com tela, então corro e desanexo:

screen -dm wget http://www.example.com/file.zip -O temp/file.zip;

Mas como eu ainda posso passar o comando "Mover" para que ele seja executado quando o primeiro deles estiver concluído?

Editar: Eu tentei citações com base na resposta do DopeGhoti:

 screen -dm 'wget http://mirror.leaseweb.com/speedtest/100mb.bin -O 1.bin; mv 1.bin 2.bin'
 cannot identify account 'wget http:'.

e isso:

 screen 'wget http://mirror.leaseweb.com/speedtest/100mb.bin -O 1.bin; mv 1.bin 2.bin'
 cannot exec 'wget http://mirror[...] no such file or directory

Editar: eu tentei com caminhos /usr/bin/wget e /usr/bin/mv completos, queixou-se da falta do nome da sessão, dei o nome da sessão com -S foo , agora ele sai silenciosamente, nenhuma tela para retomar e nenhum arquivo baixado:

screen -dm -S foo '/usr/bin/wget http://mirror.leaseweb.com/speedtest/100mb.bin -O 1.bin; /usr/bin/mv 1.bin 2.bin'
    
por adrianTNT 11.07.2017 / 23:15

2 respostas

5

Funciona se eu especificar bash -c

screen -dm bash -c 'command1; command2;'

O usuário meuh forneceu esta solução nos comentários, obrigado.

    
por 18.07.2017 / 16:35
2

Coloque toda a seqüência de comandos que você está enviando para screen entre aspas; caso contrário, o primeiro ponto-e-vírgula terminará esse comando e enviará o restante para o shell no qual você está invocando screen :

screen -dm 'wget http://www.example.com/file.zip -O temp/file.zip; mv temp/file.zip downloads/file.zip'

No entanto, pode ser sensato apenas mover o arquivo se o download for bem-sucedido:

screen -dm 'if wget http://www.example.com/file.zip -O temp/file.zip; then mv temp/file.zip downloads/file.zip; fi'
    
por 11.07.2017 / 23:17