[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Script en bash



Hola:

On Tue, 4 Feb 2003, Rodrigo Zayas wrote:

> On Tue, Feb 04, 2003 at 07:27:42PM -0600, Juan Marcos Delgado Alcantar (ac-bio) wrote:
> > Es muy tonto, pero ya estoy embotado y no encuentro la solución.
> > 
> > Tengo un archivo que se llama "1" y quiero hacer 100 copias de él, que se
> > llamen subsecuentemente "2", "3", ... "100" .
> > He tratado de hacerlo con un script con bash, pero mis resultados han sido
> > infructuosos. Alguna idea para desatorarme?
> > 
> > 
> > 
> > -- 
> > To UNSUBSCRIBE, email to debian-user-spanish-request@lists.debian.org
> > with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> > 
> >
> Este script es un borrador, pero te servira de algo:
> 
> -------------------------------------------------------------------------------
> #!/bin/bash
> fichero=$1
> if [[ -z $1 ]]
> then 
>   echo "uso: `basename $0` archivo_fuente"
>   exit 1
> fi
> a=2
> while [[ a -le 100 ]]
> do
>   cp $fichero $a
>   let a+=1
> done
> -------------------------------------------------------------------------------
> 

Personalmente pienso que se deben utilizar cuantas menos construcciones de
bash mejor, es decir, hacer scripts que sean más portables (que se
ejecuten con /bin/sh en cualquier sistema), ya que por ejemplo, el uso de
dobles corchetes y de let no está soportado por todos los shell que te
puedes encontrar por ahí. Así que yo lo escribiría más o menos como:

#! /bin/sh
fichero="$1"
test -z "$fichero" && echo "uso: $0 <fichero>" && exit 1
for i in `seq 2 100` ; do
	cp "$fichero" $i
done

	Saludos!
	diego


Diego Sevilla Ruiz -- http://ditec.um.es/~dsevilla/ -- dsevilla@um.es
Dep. Ingeniería y Tecnología de Computadores, Facultad de Informática
Univ.de Murcia,Campus Espinardo,30080 Murcia (SPAIN),Tel.+34968367658
lynx -dump ditec.um.es/~dsevilla/face |uncompface | ikon2xbm |display
PGP:  http://pgp.rediris.es:11371/pks/lookup?op=get&search=0xC9B964B7
perl -e'$_="\x4\@FLe\x2&B";for(/../g){print unpack("b*",$_),"\n"}'|tr 01 " #"
(lambda x,f=lambda x,f:x and x[-1]+f(x[:-1],f):f(x,f))('se.mu@allivesd')



Reply to: