Mailinglist Archive: opensuse-es (885 mails)

< Previous Next >
[opensuse-es] Re: uan de shell
  • From: Camaleón <noelamac@xxxxxxxxx>
  • Date: Fri, 26 Mar 2010 22:02:16 +0000 (UTC)
  • Message-id: <pan.2010.03.26.22.02.15@xxxxxxxxx>
El Fri, 26 Mar 2010 22:29:00 +0100, Carlos E. R. escribió:

El 2010-03-26 a las 11:08 -0000, Camaleón escribió:

***
#!/bin/sh
for((i=0;i<100;i++))
do
echo $i
done
***


¡Ostrás! ¿Tan facil? ¿Desde cuando se puede hacer así, eso es desde
siempre?

:-??

Hum... yo lo he leído en el manual:

3.2.4.1 Looping Constructs
http://www.gnu.org/software/bash/manual/bashref.html#Looping-Constructs

Lo he ejecutado, he visto que funcionaba y... bueno, pensaba que era así
(la verdad es que en javascript se usa esa misma estructura para el
"for", por eso no me ha extrañado).

No me lo sabía, yo usaba esto:

for X in `seq 1 100`;
do
echo $X
done

que es estructuralmente parecida a esta:

for FILES in filename1 filename2 filename3 do
gzip $FILES
done
}

La tuya se ejecuta más rápido, me la quedo ;-)

X-)

Por cierto, no uses "#!/bin/sh", usa "#!/bin/bash", a no ser que sepas
que es una construcción universal.

Eso era por una exigencia de koxkorrita. Ha especificado que era, y cito
textualmente "en un script de shell (/bin/sh)". Soy inocente, señoría
OO:-)

Hay algunas distros que han pensado o
han cambiado la shell por defecto, a otra más liviana que el bash,
precisamente para acelerar el arranque (es la discusión previa a lo del
upstart ese), y se encontraron con el problema de que algunos scripts
"oficiales" no funcionaban. Tenían que, o bien especificar bash, o
cambiar el script para que fuera con la nueva shell (y son scripts que a
veces vienen de "upstream", lo que añade una cosa más a mantener en cada
distro).

Así que es mejor especificarla. Si alguien luego quiere usar el script
con otra shell, que lo cambie.

Es que me sospecho que esa construcción "for" es específica del bash, y
es posible que hasta sea relativamente reciente.

Oído cocina, "bash" pues :-)

Saludos,

--
Camaleón

--
Para dar de baja la suscripción, mande un mensaje a:
opensuse-es+unsubscribe@xxxxxxxxxxxx
Para obtener el resto de direcciones-comando, mande
un mensaje a:
opensuse-es+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups