🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Problemas con bash y ficheros con espacios

#5969
From: garlito
Date: Wed, 27 Aug 2003 17:30
64 lines
3168 bytes
Gorka Olaizola escribi�:

Lo del getopts, ahora mismo ni idea, pero te comento algunas cosillas 
que pones mal

> images=$@
> 
> goaway=0
> for i in $images
           ^^^^^^^
Aqu� hay un fallo. Si usas $@ en el for, cuarquier argumento que tenga
espacios te lo dividir� en palabras. Usa "$@" mejor

> do
>         if [ ! -r "$i" ]
                    ^^^^
Aqu� son correctas las comillas. Tambi�n puedes usar [[ ]], que no
divide palabras y no necesita comillas, aunque es de bash, no de sh

>         then
>                 echo "The picture \"$i\" does not exists or is unreadable"
                                    ^^
No necesitas eso, $i ya va entre comillas

>                 goaway=1
>         fi
>         numimages=$(($numimages+1))
> done
> 
> En otro caso he logrado hacer funcionar los nombres con espacios metiendo
> los ficheros uno por l�nea en un fichero y haciendo esta construcci�n

Los nombres con espacios se puden hacer funcionar all� donde funcionen
los nombres sin espacios, es s�lo cuesti�n de entrecomillar ;-)

> 
> while read f
> do
>     variable="$f"
               ^^^^
               Aqu� no necesitas comillas
> done < "$fichero"
         ^^^^^^^^^^
         pa m� que aqu� tampoco, aunque tenga espacios

Resumiendo,
Entrecomillar:

- comando "argumento de varias palabras"
- "$*" y "$@"  porque los argumentos puden contener espacios.
- echo "$i" siempre que la var i se haya tomado de un read, de una
  concordancia con archivo ( for i in * por ejemplo) o de un argumento (
  for i in "$@" )
- Expansi�n de par�metro dentro de [ ], porque test separa en palabras

No entrecomillar:

- asignaciones: var1=$var2
- concordancias con archivos: for i  in * toma los nombres de archivos
con sus espacios incluidos

No es exhaustivo, pero para que te hagas una idea puede valer

Saludos
Technical Details
Message-ID: <4spiib.nu1.ln@garlito06400.uned.es>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!kibo.news.demon.net!demon!newshub1.home.nl!home.nl!amsnews01.chello.com!news-hub.cableinet.net!blueyonder!marmolejo.escomposlinux.org!escomposlinux.org!pinsa.escomposlinux.org!garlito06400.uned.es!nobody
References: <slrnbkpjga.1mg.gorka@conn.helvete.escomposlinux.org>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,7bd7fe9d2d980812
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2003-08-27 10:30:54 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!kibo.news.demon.net!demon!newshub1.home.nl!home.nl!amsnews01.chello.com!news-hub.cableinet.net!blueyonder!marmolejo.escomposlinux.org!escomposlinux.org!pinsa.escomposlinux.org!garlito06400.uned.es!nobody
From: garlito <garlito_quitaesto@wanadoo.es>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Problemas con bash y ficheros con espacios
Date: Wed, 27 Aug 2003 19:30:44 +0200
Organization: Ecolnet
Lines: 64
Message-ID: <4spiib.nu1.ln@garlito06400.uned.es>
References: <slrnbkpjga.1mg.gorka@conn.helvete.escomposlinux.org>
NNTP-Posting-Host: cliente-217216201104.ubrcoa01.supercable.es
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 8bit
X-Trace: pinsa.escomposlinux.org 1062005454 20761 217.216.201.104 (27 Aug 2003 17:30:54 GMT)
X-Complaints-To: newsmaster@pinsa.escomposlinux.org
NNTP-Posting-Date: Wed, 27 Aug 2003 17:30:54 +0000 (UTC)
User-Agent: slrn/0.9.7.4 (Linux)