shell
Diferencias
Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
shell [2012/11/08 12:52] – creado lmateu | shell [2014/11/03 23:51] (actual) – lmateu | ||
---|---|---|---|
Línea 2: | Línea 2: | ||
Este capítulo está excelentemente explicado en los | Este capítulo está excelentemente explicado en los | ||
- | apuntes de Patricio Poblete en la sección. | + | apuntes de Patricio Poblete en la sección |
+ | [[http:// | ||
+ | |||
+ | A esta sección solo hay que agregar que el shell permite definir | ||
+ | funciones, que en la práctica se comportan como nuevos comandos. | ||
+ | Estos comandos son más eficientes que un nuevo archivo de comandos | ||
+ | porque cuando se lanzan no crean un nuevo proceso, si no que | ||
+ | son interpretados por el mismo shell en donde se lanzan. | ||
+ | |||
+ | Por ejemplo se puede definir una función que calcula el factorial | ||
+ | de un número: | ||
+ | |||
+ | < | ||
+ | factorial() | ||
+ | { | ||
+ | if [ " | ||
+ | i=`expr $1 - 1` | ||
+ | j=`factorial $i` | ||
+ | k=`expr $1 \* $j` | ||
+ | echo $k | ||
+ | else | ||
+ | echo 1 | ||
+ | fi | ||
+ | } | ||
+ | |||
+ | while true | ||
+ | do | ||
+ | echo "Enter a number:" | ||
+ | read x | ||
+ | factorial $x | ||
+ | done | ||
+ | </ | ||
+ | |||
+ | En las primeras versiones del shell de Unix no había ningún mecanismo predefinido para realizar cálculos aritméticos. | ||
+ | |||
+ | Hoy en día, sí se han agregado esas características al shell porque lanzar comandos significa crear nuevos procesos y por lo tanto evaluar una expresión aritmética o comparar expresiones resultaba ineficiente. | ||
+ | |||
+ | < | ||
+ | factorial() | ||
+ | { | ||
+ | if [ " | ||
+ | then | ||
+ | f=`factorial $(($1 - 1))` | ||
+ | echo $(($1 * $f)) | ||
+ | else | ||
+ | echo 1 | ||
+ | fi | ||
+ | } | ||
+ | </ |
shell.1352379127.txt.gz · Última modificación: 2012/11/08 12:52 por lmateu