Instrucciones en PDF - Elisa Schaeffer
Instrucciones en PDF - Elisa Schaeffer
Instrucciones en PDF - Elisa Schaeffer
- No tags were found...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
CAPÍTULO 7. PROGRAMACIÓN 144<br />
lines=‘wc -l $file | awk ’{print $1}’‘<br />
echo "El archivo" $file "ti<strong>en</strong>e" $lines "lineas."<br />
sum=‘expr $sum + $lines‘<br />
count=‘expr $count + 1‘<br />
done<br />
echo "En total son" $sum "lineas <strong>en</strong> los" $count "archivos."<br />
prom=‘expr $sum / $count‘<br />
echo "Promedio redondeado:" $prom<br />
exit 0<br />
Copiando del <strong>PDF</strong>, hay que cuidar mucho poner los símbolos al comi<strong>en</strong>zo y final de las expresiones<br />
correctam<strong>en</strong>te. Cuando lo corremos, obt<strong>en</strong>emos lo sigui<strong>en</strong>te:<br />
> ./primero elisa<br />
hola, elisa<br />
la fecha y hora actual:<br />
Fri Jun 22 17:55:14 CDT 2007<br />
El archivo countsize ti<strong>en</strong>e 23 lineas.<br />
El archivo datos.txt ti<strong>en</strong>e 25 lineas.<br />
El archivo primero ti<strong>en</strong>e 19 lineas.<br />
El archivo primero~ ti<strong>en</strong>e 19 lineas.<br />
El archivo teclado.txt ti<strong>en</strong>e 8 lineas.<br />
El archivo total.awk ti<strong>en</strong>e 4 lineas.<br />
En total son 98 lineas <strong>en</strong> los 6 archivos.<br />
Promedio redondeado: 16<br />
><br />
Hay que tomar <strong>en</strong> cu<strong>en</strong>ta que esto no va a funcionar si los nombres de los archivos o las carpetas<br />
conti<strong>en</strong><strong>en</strong> espacio blanco. Por lo g<strong>en</strong>eral no es una bu<strong>en</strong>a idea utilizar blancos <strong>en</strong> los nombres<br />
por razones de compatibilidad. También se confunde con carpetas y <strong>en</strong>laces — como ejercicio,<br />
puedes modificar la línea que elije el nombre del archivo <strong>en</strong> una variable así que no considere<br />
carpetas o <strong>en</strong>laces.<br />
Para mostrar cómo implem<strong>en</strong>tar condiciones y bucles <strong>en</strong> shell scripts, el sigui<strong>en</strong>te ejemplo int<strong>en</strong>ta<br />
verificar con un algoritmo muy simple si o no un <strong>en</strong>tero es primo:<br />
#!/bin/sh<br />
# toma como parametro un <strong>en</strong>tero mayor a uno y determina si es primo<br />
echo "Determinando si" $1 "es primo:"<br />
cont=si<br />
n=$1<br />
i=2<br />
# mi<strong>en</strong>tras i es m<strong>en</strong>or que n<br />
while [ $i -lt $n ]<br />
do<br />
# dividimos por i<br />
div=‘expr $n / $i‘<br />
# calculamos el producto del resultado con i<br />
prod=‘expr $div ’*’ $i‘<br />
# tomamos la difer<strong>en</strong>cia<br />
mod=‘expr $n - $prod‘<br />
# si el difer<strong>en</strong>cia es cero<br />
if [ $mod -eq 0 ]<br />
th<strong>en</strong>