No tcsh, como posso utilizar vários comandos do shell, esperar até que todos sejam concluídos e, em seguida, executar outro comando?

6

Eu quero fazer o seguinte na linha de comando do tcsh, preferencialmente em uma linha:

build_cmd1 &
build_cmd2 &
build_cmd3 &
wait until all parallel build commands finish
regression_cmd

Ou seja, quero extrair vários comandos de compilação, bloquear até que eles saiam e, em seguida, executar outro comando. Eu quero fazer isso na linha de comando tcsh.

    
por Ross Rogers 08.07.2010 / 18:53

1 resposta

4

:: verifica com as man pages ::

Parece que o csh e o derivative suportam wait , por isso considere algo como

% cmd1 &; cmd2 &; cmd3 &; wait; thing_to_do_after

ou porque o curto-circuito && e || dos operadores pode ser usado

% (cmd1 &; cmd2 &; cmd3 &) && thing_to_do_after

mas somente se tiver certeza do estado de saída do subshell (true significa usar && e false significa usar || ).

Se você quiser que a espera fique imune a tarefas em segundo plano previamente lançadas, coloque-a no subshell ( () ) desta forma:

% (cmd1 &; cmd2 &; cmd3 &; wait) && thing_to_do_after

ou

% (cmd1 &; cmd2 &; cmd3 &; wait; thing_to_do_after)

// por favor, esteja ciente de que eu não usei tcsh em idades ...

    
por 08.07.2010 / 20:45

Tags