shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Shell script "recursivo"


From: César A . K . Grossmann
Subject: Shell script "recursivo"
Date: Tue, 09 Jun 2009 01:32:04 -0000
User-agent: eGroups-EW/0.82

ALL

Estou às voltas com um problema interessante de programação shell script. O que 
eu quero é chamar um shell script, que por sua vez vai se chamar a si mesmo "n" 
vezes, cada uma com um parâmetro diferente na linha de comando, mas não vai 
esperar para terminar a execução, vai colocar em background e, quando eu der 
Ctrl-C no processo-pai, matar todos os filhos e então encerrar. Meio estranho, 
não? Podem pensar nisto como uma espécie de super-servidor, ou coisa do tipo. 
Um pseudo código para o que eu estou pensando seria:

inicio
  se "$1" estiver vazio
  então
    para argumento em arg1 arg2 arg3
    faça
      $0 $argumento &
    fim-faça
    espera Ctrl-C
    mata filhotes
    fim
  senão
    repetir
      comando-qualquer $1
      espera 15 segundos
    fim-repetir
  fim-se
fim

Cheguei a alguma coisa assim:

#!/usr/bin/env bash

if [ -z "$1" ]
then
  for arg in primeiro segundo terceiro
  do
    $0 $arg &
  done
  wait
else
  while true
  do
    echo $1
    sleep 15
  done
  return
fi

A pergunta: esta é a melhor técnica de implementar este tipo de coisa?

Outra pergunta, para impedir que o script seja executado mais de uma vez sem 
parâmetro nenhum, o ideal é colocar uma espécie de "lock file", qual a técnica 
usada em shell script para isto? E para garantir uma saída "limpa"?

Abraços



reply via email to

[Prev in Thread] Current Thread [Next in Thread]