Article View: es.comp.os.linux.programacion
Article #210Re: Comportamiento extraño (al menos a mi me lo parece) en Bash
From: Gonzalo Pérez de Olaguer Córdoba
Date: Fri, 13 Nov 2009 11:34
Date: Fri, 13 Nov 2009 11:34
47 lines
2870 bytes
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-mailReferences:
<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)