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

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

Re: [shell-script] 1 script rodando, junto com 3 em background


From: Alan Diones
Subject: Re: [shell-script] 1 script rodando, junto com 3 em background
Date: Wed, 5 Mar 2008 17:26:57 -0300

era justamente o que eu precisava, funcionou que é uma maravilha, vo estudar o 
link que me passou.
  ----- Original Message ----- 
  From: Julio C. Neves 
  To: address@hidden 
  Sent: Wednesday, March 05, 2008 5:03 PM
  Subject: Re: [shell-script] 1 script rodando, junto com 3 em background


  Use named pipes e mande a saida dos escripts para esses caras.

  Antes faça:

  $ mkfifo fifo1 fifo2 fifo3

  O scritp 1 será:

  #!/bin/bash
  clear
  read -p "Infome um número de 1 a 4" numero
  echo $numero > pipe1

  O segundo será:

  #!/bin/bash
  while true
  do
  case $(cat pipe1) in
  1) echo a;;
  2) echo b;;
  3) echo c;;
  4) echo d;;
  *) break
  esac > pipe2
  done

  O terceiro passará a saída para pipe3, que será lido pelo quarto. Estude
  como os named pipes trabalham lendo isto
  
aqui<http://twiki.softwarelivre.org/bin/view/TWikiBar/TWikiBarPapo011#Named_Pipes>
  .

  Primeiramente coloque os scripts em background fazendo:

  $ ./script2.sh &
  $ ./script3.sh &
  $ ./script4.sh &

  Depois vc executa o primeiro

  $ ./script1.sh

  Do jeito que fiz, qdo vc escrever um número maior que 4 o
  script2.shmorrerá. Faça da mesma forma para o 3 e o 4, que eles
  atuarão como se fossem
  daemons e a cada vez que vc executar o um, os 3 trabalharão em silêncio.

  Abração,
  Julio

  Abraços,
  Julio

  Em 05/03/08, sieg_diones <address@hidden> escreveu:
  >
  > Amigos shelleiros boa tarde,
  >
  > estou com um pequeno problema aqui, sao 4 scripts simples, porém nao
  > consigo fazer o que eu to precisando, vamos lá:
  >
  > esse é o primeiro script ele apenas receberá um numero que seja de
  > 1 a 4.
  >
  > #---ScriptPrincipal.sh
  > #!/bin/bash
  > clear
  > echo "Infome um número de 1 a 4"
  > read numero
  >
  > esse segundo script trabalhará em background, ele receberá o numero
  > digitado no script anterior e irá fazer uma comparação trocando - o
  > por uma letra corresponde:
  >
  > #---ScriptSecundario.sh
  > #!/bin/bash
  > clear
  > if [ $numero = 1 ]; then
  > temp = a
  > fi
  > if [ $numero = 2 ]; then
  > temp = b
  > fi
  > if [ $numero = 3 ]; then
  > temp = c
  > fi
  > if [ $numero = 4 ]; then
  > temp = d
  > fi
  >
  >
  > esse terceiro script também terá que trabalhar em background, ele
  > receberá a letra do script anterior e comparará com uma das
  > comparações presentes:
  >
  > #---ScriptTerceiro.sh
  > #!/bin/bash
  > clear
  > if [ $temp = 'a' ]; then
  > temp1 = 1*1
  > fi
  > if [ $temp = 'b' ]; then
  > temp1 = 2*2
  > fi
  > if [ $temp = 'c' ]; then
  > temp1 = 3*3
  > fi
  > if [ $tem = 'd' ]; then
  > temp1 = 4*4
  > fi
  >
  >
  > esse quarto script também terá que trabalhar em background, ele
  > receberá o quadrado do script anterior e irá somá-lo a mais 1, e em
  > seguida ele imprime na tela os dados:
  >
  > #---ScriptQuarto.sh
  > #!/bin/bash
  > clear
  > if [ $temp1 = 1 ]; then
  > temp2 = temp1 + 1
  > fi
  > if [ $temp1 = 4 ]; then
  > temp2 = temp1 +1
  > fi
  > if [ $temp1 = 9 ] ; then
  > temp2 = temp1 +1
  > fi
  > if [ $temp1 = 16 ]; then
  > temp2 = temp1 +1
  > fi
  > echo "$temp2 $temp1 $temp $numero"
  >
  > minha duvida: como que eu coloco esses três ultimos scripts
  > trabalhando em background? e como tb faço para que cada um dos três
  > receberem os dados dos scripts anteriores?
  > ou seja quando eu for digitar aki o numero no primeiro script e
  > quando eu pressionar a tecla enter, ele terá que me mostrar na tela
  > ja o echo do ultimo script.
  > to meio perdido nessas partes.
  >
  > 
  >

  -- 
  Abraços,
  Julio

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



   

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



reply via email to

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