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

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

Re: [shell-script] Shell script "recursivo"


From: Valtoir Jardim
Subject: Re: [shell-script] Shell script "recursivo"
Date: Tue, 9 Jun 2009 09:18:14 -0300

Só prá completar: pensei em fazer algo como

...
}
feet &
feet &
feet &
read -rs -n 1
echo -e "\e[m"
setterm -reset
clear
pkill feet

Mas nesse caso fica um bug que fiquei com preguiça de resolver :)

Valtoir

2009/6/9 Valtoir Jardim <address@hidden>

> Olá, César.
>
> Não sei se serve, mas uso algo parecido no script do link abaixo:
>
> http://br.groups.yahoo.com/group/shell-script/files/feet.sh
>
> O script tem uma função com o mesmo nome, que é chamada logo após sua
> declaração. Com o pressionamento de qualquer tecla envio um "pkill
> nome_da_função" que mata o próprio script e quaisquer subprocessos que a
> função tenha devido ao nome igual. A idéia era mais ou menos essa, chamar
> várias vezes a função e ter mais de um par de pés caminhando pela tela ao
> mesmo tempo, mas acabei deixando do jeito que está.
>
> Quanto ao lock, será que o ps não é mais efetivo?
>
> Valtoir
>
> 2009/6/9 Eri Ramos Bastos <address@hidden>
>
>
>>
>> Fala, César.
>>
>> Para matar os filhos você precisa do trap:
>>
>>
>> http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo010#O_trap_n_o_atrapalha
>> http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_12_02.html
>>
>> Para saber se um script já está rodando eu costumo criar um arquivo em
>> /var/run/ chamado nome-do-processo.pid, que contem o número do PID do
>> processo, que você consegue na variável $$.
>>
>> Dependendo do tamanho que for ficar seu script usar funções é sempre
>> uma boa idéia.
>>
>> []'s
>> Eri Ramos Bastos
>>
>> 2009/6/8 César A. K. Grossmann <address@hidden<cesarakg%40bol.com.br>
>> >:
>>
>> > 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
>> >
>> >
>> >
>> > ------------------------------------
>> >
>> > ----------------------------------------------------------
>> > Esta lista não admite a abordagem de outras liguagens de programação,
>> como perl, C etc. Quem insistir em não seguir esta regra será moderado sem
>> prévio aviso.
>> > ----------------------------------------------------------
>> > Sair da lista: 
>> > address@hidden<shell-script-unsubscribe%40yahoogrupos.com.br>
>> > ----------------------------------------------------------
>> > Esta lista é moderada de acordo com o previsto em
>> http://www.listas-discussao.cjb.net
>> > ----------------------------------------------------------
>> > Servidor Newsgroup da lista: news.gmane.org
>> > Grupo: gmane.org.user-groups.programming.shell.brazil
>> >
>> > Links do Yahoo! Grupos
>> >
>> >
>> >
>>  
>>
>
>


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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