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

redirigiendo entrada/salida

Estas en el tema de redirigiendo entrada/salida en el foro de Unix / Linux en Foros del Web. Buenas, Les cuento que estoy haciendo un script de bash que quiero que me arme un archivo separado por comas, uno de esos archivos q ...
  #1 (permalink)  
Antiguo 15/06/2007, 06:04
 
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 46
Antigüedad: 18 años, 2 meses
Puntos: 1
redirigiendo entrada/salida

Buenas,

Les cuento que estoy haciendo un script de bash que quiero que me arme un archivo separado por comas, uno de esos archivos q despues se importan y exportan.

Les planteo una parte del problema ya que a partir de allí espero poder desenvolverme mejor.

Sé que si escribo en el Shell algo como:

# cat miarchivo | $HOME/miscript.sh

estoy redirigiendo la salida de cat a la entrada de mi script mediente el pipe '|'. Supongamos que $HOME/miscript.sh es como sigue:

#!/bin/bash
echo $#
exit 0
#FIN

y que miarchivo tiene una sola linea como la siguiente:

drwxrwxr-x 21 root root 4096 may 30 18:03 Alfabetos

Lo que no logro entender es porque si redirijo la salida del 1er comando a la entrada del 2º, el script me imprime en pantalla que no tiene parametros pasados. Aclaro que la variable $# guarda la cantidad de parametros q se le pasan al script Osea q me imprime en pantalla un 0.

Y la duda surge porque si escribo:

# $HOME/miscript.sh drwxrwxr-x 21 root root 4096 may 30 18:03 Alfabetos

$HOME/miscript.sh me devuelve 9, o sea q los datos que son parametros se reciben de una forma y no de otra, cuando tenia entendido y por todo lo que pude ver en internet que las 2 formas son equivalentes.

Si alguien sabe a que se debe esto le agradeceria ya que logicamente es mucho mejor utilizar la forma que describi primero.

Saludos.
  #2 (permalink)  
Antiguo 15/06/2007, 07:59
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Re: redirigiendo entrada/salida

Estás confundiendo conceptos.
lo que hace el | no es pasar como parámetros, sino redirigir STDIN.
(seguramente sabrás que existen los descriptores STDIN, STDOUT, STDERR para cada programa)

Lo que querés hacer lo lográs con

$HOME/miscript.sh `cat miarchivo`


Saludos.
  #3 (permalink)  
Antiguo 15/06/2007, 09:11
 
Fecha de Ingreso: septiembre-2006
Ubicación: Montevideo
Mensajes: 46
Antigüedad: 18 años, 2 meses
Puntos: 1
Re: redirigiendo entrada/salida

Buenisimo,

Muchisimas gracias era justo eso, voy a investigar el asunto de las retrocomillas a ver el uso que se le da y demas.

Gracias de nuevo ;)
Saludos
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 20:44.