Article View: es.comp.os.linux.programacion
Article #1941Re: Bash y el manejo de espacios
From: J.A. Gutierrez
Date: Thu, 23 Jun 2005 07:23
Date: Thu, 23 Jun 2005 07:23
70 lines
3380 bytes
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-mailReferences:
<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))