🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: BASH

#1426
From: Gonzalo Pérez de Olaguer Córdoba
Date: Thu, 15 Dec 2005 14:06
53 lines
3013 bytes
Hola "Olaf \"El BLanco\"" <winter@yahoo.co.uk>
el Thu, 15 Dec 2005 11:49:42 +0100 escribiste:

> 
> Mi idea es que en todos los comandos que haga primero verificar si los
> parametros, en el caso de que sean archivos existen, tambien deberia
> verificar si se ha ingresado el nro correcto de parametros.

Idea totalitaria difícil de sacarse de encima, ésta de querer
controlarlo todo. AsĂ­ en general yo te dirĂ­a:

- primero asegĂșrate de que el programa funciona correctamente cuando se
  le pasan los parĂĄmetros correctos. O sea, que lo que el programa ha de
  hacer, lo haga bien.
- comprueba sĂłlo aquellas situaciones que, en caso de producirse, 
  provocarĂ­an un error *muy grave* de funcionamiento (agujeros de seguridad,
  cuelgues, corrupciĂłn de datos). AquĂ­ no se trata de defender al
  usuario de sĂ­ mismo, sino de defender al programa del usuario.
- para el resto de casos (defender al usuario de sĂ­ mismo) cuanto mĂĄs
  abierto lo dejes mejor.

La calidad de un programa se mide por el nĂșmero de lĂ­neas que no
contiene :-)

> #!/bin/bash
> if [ ls $1 2>/dev/null ] ; then
>    echo -e "El archivo o directorio NO existe \n"
> fi

Ese error YA lo producen las funciones de la librerĂ­a C cuando hace
falta. AdemĂĄs, lo hacen en el idioma que el usuario haya seleccionado.
AdemĂĄs, lo emiten por stderr, que es donde esperarĂ­a encontrarlo
cualquier usuario.

Prueba esto y decide tĂș mismo:

ls $1 || exit

O mejor aĂșn, mete un "set -e" al principio del script (bash). MĂĄs info
en "help set".

> Estoy con la basico. No quiero adentrarme (todavia) en profundidad, pero me
> gustaria saber si algo existe o no.

MĂ­rate las CONDITIONAL EXPRESSIONS del manual de bash:

man bash<return>/^CON<return>

-- 
Gonzalo Pérez de Olaguer Córdoba <gpoc@iies.es>
PGP key 2861C704 --- F206 5671 6789 425D 111C  1302 214F 1934 2861 C704
Technical Details
Message-ID: <20051215150616.17d2b107@petres.salonet.snet>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!news.antakira.com!cagarruta.escomposlinux.org!hercules.escomposlinux.org!escomposlinux.org!not-for-mail
References: <dnrho8$8cg$1@cormoran.emeteo.local>

Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,3c149b3755c02eb8
X-Google-Attributes: gidf86c8,public
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!news.glorb.com!news.antakira.com!cagarruta.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: BASH
Date: Thu, 15 Dec 2005 15:06:16 +0100
Organization: escomposlinux.org
Lines: 53
Message-ID: <20051215150616.17d2b107@petres.salonet.snet>
References: <dnrho8$8cg$1@cormoran.emeteo.local>
NNTP-Posting-Host: 59.red-80-25-103.staticip.rima-tde.net
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable
X-Trace: hercules.cohp1 1134655578 15125 80.25.103.59 (15 Dec 2005 14:06:18 GMT)
X-Complaints-To: newsmaster@cofrentes.no-ip.com
NNTP-Posting-Date: Thu, 15 Dec 2005 14:06:18 +0000 (UTC)
X-Newsreader: Sylpheed-Claws 1.0.4 (GTK+ 1.2.10; i386-pc-linux-gnu)