Como esperar até o script terminar - csh?

0

Eu executo um script que divide um arquivo grande em pequenos arquivos. Imediatamente depois eu pergunto if (-f *filename) then ....

Às vezes, o script não termina, então o if não funciona. Eu tentei sleep , mas isso não resolve o problema.

Meu script:  split -l $ number_lines - file2 < arquivo1 > & / dev / null &

Como devo usar 'espera'?

Obrigado!

    
por Shani Cohen 02.10.2014 / 14:56

1 resposta

1

Existem alguns métodos para desvendar seu problema.

Estou entendendo que você está usando um C-Shell (eu uso o Bash, mas determinado ambiente com o qual eu interajo usa o TCSH.)

Um método para cumprir sua exigência é o bloqueio sistemático orientado a processos.

A abordagem de bloqueio de processos é mais parecida com isso:

#!/bin/csh
set process_id = $1
set sub_sequent_cmd = $2
set ANTECEDENT_PROC = XXYYZZ
#
while (pidof $ANTECEDENT_PROC)
do
  sleep 10
  if (pidof $ANTECEDENT_PROC)
  then
    sleep .1
  else
    ./sub_sequent_command
    break
  fi
end

A premissa da solução é o que é importante. Monitore o proc com um script externo e, quando o antecedent proc terminar, execute seu script subseqüente.

Isso só funcionaria se você refatorasse seu script csh para ser chamado em uma sessão csh exportada.

    
por 02.10.2014 / 15:14

Tags