🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Comportamiento extraño (al menos a mi me lo parece) en Bash

#210
From: Gonzalo Pérez de Olaguer Córdoba
Date: Fri, 13 Nov 2009 11:34
47 lines
2870 bytes
Hola Bypper <bypper@microsoft.com>
el Fri, 13 Nov 2009 10:03:21 +0100 escribiste:

> Es decir, todavia no ha llegado a procesar la linea que hemos añadido, y
> la variable definida anteriormente esta ahora vacia. !!!!

Antes también salían dos líneas vacías, una al principio y otra al final.
Parece que los ficheros /tmp/comproba_{antes,despues} contienen líneas
en blanco.

Por lo tanto ``grep $1 $DES'' se convierte en ``grep /tmp/comproba_despues´´.
Observa que a grep le falta un parámetro. grep interpreta el argumento como
el PATRÓN de búsqueda, y lee los datos a filtrar de stdin. O sea, todo lo que
queda del ``cat $ANT''. No encuentra nada que coincida con /tmp/comproba_antes
y devuelve 1. Luego se ejecuta el último read L, que devuelve false porque
toda la entrada se la ha chupado el grep.

Una solución, que te dará resultados curiosos (pruébala) es simplemente meter
el argumento a grep entre comillas: ``grep "$1" $DES''.

Pero lo mejor es filtrar: ``[[ -n "$1" ]] && grep "$1" "$DES"''. Siempre es bueno
en bash encerrar los argumentos entre comillas, para evitar que los argumentos
desaparezcan o se conviertan en varios argumentos adicionales (si hay blancos por
enmedio).

Verás que algunas líneas de la salida están duplicadas (porque comproba.sh
también vale para .comproba.sh.swp). Si quieres evitar eso complica la
expresión regular: ``grep "^$1 " "$DES"''.

Saludos,
Gonzalo.

-- 
Gonzalo Pérez de Olaguer Córdoba <gpoc@iies.es> --- www.gpoc.es
PGP key 2861C704 --- F206 5671 6789 425D 111C  1302 214F 1934 2861 C704
Technical Details
Message-ID: <20091113123447.4375aaba@petres.salonet.snet>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!feeder.news-service.com!news.k-dsl.de!tramontana.escomposlinux.org!hercules.escomposlinux.org!escomposlinux.org!not-for-mail
References: <vvjvs6-qre.ln1@apevia.bersol.sytes.net>

Show Full Headers
Complete Article Headers
X-Google-Thread: 646d03421f,fc7a7c8a3dc5317e
X-Google-Attributes: gid646d03421f,public,usenet
X-Google-NewGroupId: yes
X-Google-Language: SPANISH,UTF8
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!feeder.news-service.com!news.k-dsl.de!tramontana.escomposlinux.org!hercules.escomposlinux.org!escomposlinux.org!not-for-mail
From: Gonzalo Pérez de Olaguer Córdoba <gpoc@iies.es>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Comportamiento extraño (al menos a mi me lo
 parece) en Bash
Date: Fri, 13 Nov 2009 12:34:47 +0100
Organization: escomposlinux.org
Lines: 48
Message-ID: <20091113123447.4375aaba@petres.salonet.snet>
References: <vvjvs6-qre.ln1@apevia.bersol.sytes.net>
NNTP-Posting-Host: 84.77.244.205
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
X-Trace: hercules.cohp1 1258112091 5840 84.77.244.205 (13 Nov 2009 11:34:51 GMT)
X-Complaints-To: newsmaster@news-17.escomposlinux.org
NNTP-Posting-Date: Fri, 13 Nov 2009 11:34:51 +0000 (UTC)
X-Newsreader: Claws Mail 3.5.0 (GTK+ 2.12.12; i486-pc-linux-gnu)