Programa de linha de comando de loop

0

Eu tenho muitos arquivos que eu quero processar com um software que é executado via linha de comando. Cada execução levará cerca de 8 horas, portanto, quero automatizar esse processo.

Como posso criar um script que automatize isso? Eu imagino que o algoritmo é como: chame o comando para processar o arquivo 1, espere até que ele termine, chame o comando para processar o arquivo 2, etc. É como uma fila. Eu posso escrever em script de shell, python ou java.

    
por Bharata 13.02.2017 / 02:36

2 respostas

5

Usando bash por padrão, um comando não inicia até que o primeiro termine, então você pode usar:

/path/to/command /path/to/file1
/path/to/command /path/to/file2
/path/to/command /path/to/file3

Coloque os comandos em um script chamado por exemplo ~/run-all-commands . Em seguida, marque-o como executável usando:

chmod +x ~/run-all-commands

Em seguida, chame o script bash com um lote de comandos usando:

~/run-all-commands
    
por WinEunuuchs2Unix 13.02.2017 / 02:43
0

crie ls para obter uma lista das suas pastas.

escreva um script e chame-o script arguments com os argumentos sendo suas pastas.

o script faz isso:

sp = $(pwd)

for i in $@
do
  cd $i
  cp ../command .
  ./command
  cd $sp
done

Estou assumindo que command é um script local em si. Se é algo em ~/bin ou /bin , você pode simplesmente chamá-lo como qualquer outro.

    
por Fl.pf. 13.02.2017 / 13:19