🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #1941

Re: Bash y el manejo de espacios

#1941
From: J.A. Gutierrez
Date: Thu, 23 Jun 2005 07:23
70 lines
3380 bytes
David Lago <dlago@mundo-r.com> wrote:
: Hola a todos,

: Estoy haciendo un programa que llama a otro mediante pipes. Para
: constru�r el comando que voy a lanzar, tengo que ponerle como �ltimos
: argumentos una serie de parejas cadena1=cadena2, en las que puede haber
: espacios por medio.

: Estos pares cadena1=cadena2 est�n almacenados en un fichero, pongamos
: llamado prueba.dat. Mi idea inicial era hacer lo siguiente:

: comando -opcion1 -opcion2... `cat prueba.dat`

: y funcion�. El caso es que si meto ese texto ("cadena1=cadena2"
: "cadena3=cadena4") en prueba.dat, y hago lo de antes, sigue sin
: funcionar... no s� qu� puede estar pasando.

	es logico.
	Hay que tener en cuenta que es sh el que interpreta, en la
	linea de comandos, que "foo bar" es un solo argumento a
	pasarle al ejecutable.

	Al usar

	ejecutable `cat file.txt`

	no hay interpretacion posible por parte del shell.

: Si ten�is alguna pista, os lo agradecer�a, porque estoy atrancado con

	Una solucion es, si sabes un caracter que no va a aparecer
	en tus argumentos, usarlo como IFS

	Ejemplo:

	$ cat > file.txt <<eof
	foo:foo bar:bar foo
	eof

	$ IFS=:
	$ ./putargs `cat file.txt`
	foo
	foo bar
	bar foo



: eso (otra soluci�n es constru�r el comando entero _dentro_ de mi
: programa, leyendo ese archivo, pero como no s� lo grande que puede
: llegar a ser (puede sobrepasar las 10.000 entradas), tendr�a que asignar
: memoria din�micamente... mejor probar otra cosa :)

	Pues eso indica (aun mas) claramente que estas utilizando un
	enfoque incorrecto para solucionar el problema.

	Por mucho que metas los argumentos en un fichero, el numero
	maximo de argumentos que puede recibir un ejecutable esta
	limitado; asi que no tiene ningun sentido intentar pasarle 10000
	argumentos a un ejecutable.

	Pasale el nombre del fichero como argumento e incluye en el
	codigo del ejecutable lo necesario para que sea capaz de
	leerlo e interpretarlo.


-- 
PGP and other useless info at      \
http://webdiis.unizar.es/~spd/      \
finger://daphne.cps.unizar.es/spd    \       Timeo Danaos et dona ferentes
ftp://ivo.cps.unizar.es/pub/          \                         (Virgilio)   
Technical Details
Message-ID: <d9do2a$ll4$2@appleseed.escomposlinux.org>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!peer01.cox.net!cox.net!antonio.escomposlinux.org!cernicalo.escomposlinux.org!appleseed.escomposlinux.org!escomposlinux.org!appleseed.escomposlinux.org!not-for-mail
References: <d9chnu$14j8@cesio.mundo-r.com>

Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,ca8ccd75e6b170f5
X-Google-Attributes: gidf86c8,public
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!peer01.cox.net!cox.net!antonio.escomposlinux.org!cernicalo.escomposlinux.org!appleseed.escomposlinux.org!escomposlinux.org!appleseed.escomposlinux.org!not-for-mail
From: "J.A. Gutierrez" <spd@daphne.cps.unizar.es>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Bash y el manejo de espacios
Date: Thu, 23 Jun 2005 07:23:54 +0000 (UTC)
Organization: Rank
Lines: 70
Message-ID: <d9do2a$ll4$2@appleseed.escomposlinux.org>
References: <d9chnu$14j8@cesio.mundo-r.com>
NNTP-Posting-Host: daphne.cps.unizar.es
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: appleseed.escomposlinux.org 1119511434 22180 155.210.152.20 (23 Jun 2005 07:23:54 GMT)
X-Complaints-To: news@appleseed.escomposlinux.org
NNTP-Posting-Date: Thu, 23 Jun 2005 07:23:54 +0000 (UTC)
User-Agent: tin/1.4.7-20030322 ("Suggestions") (UNIX) (IRIX64/6.5 (IP30))