Foros del Web » Administración de Sistemas » Unix / Linux »

Tuberias (pipes) bash linux

Estas en el tema de Tuberias (pipes) bash linux en el foro de Unix / Linux en Foros del Web. Hola a todos! Estoy intentando hacer un programa en bash que maneje tuberias... Sé que para redireccionar el desciptor se hace Código: exec 3>{fifo}.in pero ...
  #1 (permalink)  
Antiguo 04/10/2007, 11:08
 
Fecha de Ingreso: abril-2007
Mensajes: 25
Antigüedad: 17 años, 7 meses
Puntos: 0
Tuberias (pipes) bash linux

Hola a todos!

Estoy intentando hacer un programa en bash que maneje tuberias... Sé que para redireccionar el desciptor se hace
Código:
exec 3>{fifo}.in
pero al intentar hacer un printf por ese descriptor no me deja...
Código:
printf "xxxxx">&3
me pone el siguiente error
Código:
bash 3: Descriptor de fichero erroneo
Alguien me pued ayudar??
PD:La tuberia esta creado por si no habia quedado claro XD

Saludos
  #2 (permalink)  
Antiguo 04/10/2007, 15:14
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 22 años, 3 meses
Puntos: 29
Re: Tuberias (pipes) bash linux

No entendí nada la verdad, no vi ningun pipe por ningun lado.

saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #3 (permalink)  
Antiguo 04/10/2007, 17:46
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 20 años, 2 meses
Puntos: 47
Re: Tuberias (pipes) bash linux

Lo que Koveart quiere apuntar, es que las tuberias o pipes son el uso del simbolo | para concatenar comandos, por ejemplo:

Código:
cat archivo | grep dato
Fijate en el manual de Advanced Bash-Scripting Guide que explica por ahi bien el tema de redireccionamientos.
__________________
¡Volviendo a la programación!
  #4 (permalink)  
Antiguo 05/10/2007, 02:12
 
Fecha de Ingreso: abril-2007
Mensajes: 25
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Tuberias (pipes) bash linux

Buenas!

Claro que el caranter | hace de tuberia... pero lo que yo quiero hacer es una tuberia para comunicar procesos... La tuberia es {fifo}.in creada asi mkfifo ${fiffo}.in, es una manera poco rara de declarar la tuberia pero es asi como me viene en el enunciado

Saludos

Última edición por bochan; 05/10/2007 a las 02:17
  #5 (permalink)  
Antiguo 09/10/2007, 10:29
Avatar de Slayer_X
Colaborador
 
Fecha de Ingreso: mayo-2001
Ubicación: Lima
Mensajes: 865
Antigüedad: 23 años, 6 meses
Puntos: 1
Re: Tuberias (pipes) bash linux

No te sirve usar "echo" en vez de "printf" ?
__________________
(o> Cesar Villegas Ureta
// "Slayer_X"
V_/_ http://www.slayerx.org/
  #6 (permalink)  
Antiguo 16/10/2007, 13:11
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 8 meses
Puntos: 7
Re: Tuberias (pipes) bash linux

Reabro este tema porque tengo una duda sobre tuberias bajo linux y para no abrir un post nuevo lo meto aqui que tambien tiene que ver con ello. Espero que el autor del hilo no le parezca mal...sino lo cambio de sitio


Mi duda es:

Tengo un fichero que contiene un numero (que realmente es el pid de un proceso bajo linux).

Yo queria que un script de linux cogiera ese numero para luego hacer un kill y por tanto matar o detener dicho proceso. Para ello pensé en utiizar tuberias de esta manera:

cat id.txt|kill

Yo había pensado que como el comando "cat" me devuelve el contenido del fichero id.txt, o sea un número, éste iría a parar a la entrada del comando "Kill" y así me funcionaría la cosa. Pero me equivoque jeje. Cuando ejecuto esto me salta el siguiente error:


kill: usage: kill [-s sigspec | -n signum | - sigspec] ...............

Vamos que me está diciendo que no estoy utilizando bien el comando (o eso creo).


Alguién sabe como solucionar dicho problema.


Un saludo a todos.
  #7 (permalink)  
Antiguo 16/10/2007, 14:49
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 22 años, 3 meses
Puntos: 29
Re: Tuberias (pipes) bash linux

Yo lo que haría sencillamente

Cita:
kill `cat id.txt`
Saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #8 (permalink)  
Antiguo 16/10/2007, 15:30
Avatar de Koveart
Colaborador
 
Fecha de Ingreso: julio-2002
Ubicación: Colombia
Mensajes: 4.407
Antigüedad: 22 años, 3 meses
Puntos: 29
Re: Tuberias (pipes) bash linux

Se me olvidaba que tambien puedes utilizar xargs así

Cita:
cat id.txt | xargs kill
saludos
__________________
“Los soñadores no existen, se lo dice un soñador que ha tenido el privilegio de ver realidades que ni siquiera fue capaz de soñar”
  #9 (permalink)  
Antiguo 17/10/2007, 05:32
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 8 meses
Puntos: 7
Re: Tuberias (pipes) bash linux

Muchas gracias.

He probado la opción que me dabas:

cat id.txt | xargs kill

Y me funciono a la primera.


Me has quitado un quebradero de cabeza.


Saludos y gracias por todo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:30.