🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Bash: elementos de una colección.

#5893
From: J. P.
Date: Sun, 31 Aug 2003 01:01
64 lines
2626 bytes
    Hola a todos,

    Llamemos al siguiente gui�n �prueba�,
#v+

    #!/bin/bash

    objetivos()
    {
    for I in "${@}"
    do
        echo "${I}"
    done
    }

    COLECCION=($(objetivos "${@}"))

    echo "Tama�o de la colecci�n: ${#COLECCION[@]}"
    echo "---"
    echo "Elemento 1: ${COLECCION[0]}"
    echo "Elemento 2: ${COLECCION[1]}"
    echo "---"

#v-
    Si se ejecuta desde la l�nea de �rdenes (LIO) con argumentos
�normales� todo funciona correctamente. Un ejemplo:

    $ ./prueba arg1 arg2
    Tama�o de la colecci�n: 2
    ---
    Elemento 1: arg1
    Elemento 2: arg2
    ---

    El problema tiene lugar cuando se lo ejecuta con argumentos que
contienen caracteres especiales salvaguardados (o protegidos con
comillas) como pueden ser los espacios. Un ejemplo:

    $ ./prueba arg\ 3
    Tama�o de la colecci�n: 2
    ---
    Elemento 1: arg
    Elemento 2: 3
    ---

    Me gustar�a que funcionara como lo hizo en el primer ejemplo:
�arg\ 3� deber�a ser considerado como un �nico argumento y como tal
la colecci�n deber�a contener un solo elemento.

    Le pregunta es: �es posible asignar elementos de un modo seguro a
una colecci�n usando este m�todo?. He de decir que es posible crear una
coleci�n con los arg�mentos �ntegros si se a�aden directamente dentro de
la funci�n �objetivos()�[1], pero estoy interesado en saber si es posible
hacerlo de la forma propuesta.

    Muchas gracias por vuestra atenci�n.

    [1] objetivos()
        {
        for I in "${@}"
        do
            COLECCION=("${COLECCION[@]}" "${I}")
        done
        }
Technical Details
Message-ID: <birhdv$c8okj$1@ID-130393.news.uni-berlin.de>
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!newsfeed.freenet.de!fu-berlin.de!uni-berlin.de!pd9e651d2.dip.t-dialin.NET!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,fb6dad6ad0f7d3c4,start
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2003-08-30 18:01:53 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!newsfeed.freenet.de!fu-berlin.de!uni-berlin.de!pd9e651d2.dip.t-dialin.NET!not-for-mail
From: "J. P." <not_my@mail.com>
Newsgroups: es.comp.os.linux.programacion
Subject: Bash: elementos de una colección.
Date: 31 Aug 2003 01:01:51 GMT
Lines: 64
Message-ID: <birhdv$c8okj$1@ID-130393.news.uni-berlin.de>
NNTP-Posting-Host: pd9e651d2.dip.t-dialin.net (217.230.81.210)
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: news.uni-berlin.de 1062291711 12870291 217.230.81.210 (16 [130393])
User-Agent: slrn/0.9.7.4 (Linux)