Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa Próxima revisiónAmbos lados, revisión siguiente | ||
tutorial_de_programacion_en_bash [2023/02/27 17:36] – [Operaciones aritméticas] peron | tutorial_de_programacion_en_bash [2023/04/07 01:32] – [Funciones] peron | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
=====Tutorial de Programación en Bash===== | =====Tutorial de Programación en Bash===== | ||
- | Además de ser un [[interpretes de comandos|intérprete de comandos]], [[Bash]] también consiste en un //lenguaje de comandos interpretado// | + | [[Bash]] es una [[interpretes de comandos|shell]], que además cuenta con un //lenguaje de comandos interpretado// |
Si has completado [[lenguaje_del_interprete_de_comandos|el primer Tutorial del lenguaje de intérprete de comandos]], sin dudas este tutorial te enseñará algunas de sus características más avanzadas de Bash. | Si has completado [[lenguaje_del_interprete_de_comandos|el primer Tutorial del lenguaje de intérprete de comandos]], sin dudas este tutorial te enseñará algunas de sus características más avanzadas de Bash. | ||
Línea 43: | Línea 43: | ||
<code bash> | <code bash> | ||
- | $ env | + | env |
</ | </ | ||
- | Generalmente se suele definir estas variables en mayñusculas, por ejemplo: '' | + | Generalmente se suele definir estas variables en mayúsculas, por ejemplo: '' |
==== Citas ==== | ==== Citas ==== | ||
Línea 54: | Línea 54: | ||
===Cita con cadena=== | ===Cita con cadena=== | ||
- | No existe diferencia al utilizar | + | No existe diferencia al utilizar |
- | El siguiente | + | El siguiente |
<code bash> | <code bash> | ||
# | # | ||
- | echo ' | + | echo ' |
- | echo " | + | echo " |
- | mkdir 'Dir 1' | + | mkdir 'Directorio |
- | mkdir "Dir 2" | + | mkdir "Directorio |
</ | </ | ||
Línea 72: | Línea 72: | ||
Recuerda que las expansión de variables de Bash __únicamente operará con las comillas__. Si defines cualquier variable en comillas simples, ¡no funcionarán! | Recuerda que las expansión de variables de Bash __únicamente operará con las comillas__. Si defines cualquier variable en comillas simples, ¡no funcionarán! | ||
- | Ejecuta el siguiente | + | Ejecuta el siguiente |
<code bash> | <code bash> | ||
Línea 85: | Línea 85: | ||
====Depuración en Bash ==== | ====Depuración en Bash ==== | ||
- | El guionado de Bash provee una funcionalidad de depuración durante el tiempo de ejecución. Emplea el comando '' | + | El guionado de Bash provee una funcionalidad de depuración durante el tiempo de ejecución. Emplea el comando '' |
===Depurado durante la ejecución=== | ===Depurado durante la ejecución=== | ||
Línea 97: | Línea 97: | ||
===Depurado de un guión=== | ===Depurado de un guión=== | ||
- | Si deseas activar la depuración __dentro del mismo guión__, podrás depurar cierta parte del guión. | + | Si deseas activar la depuración __dentro del mismo guion__, podrás depurar cierta parte del guion. |
<code bash> | <code bash> | ||
Línea 133: | Línea 133: | ||
====Código de Salida==== | ====Código de Salida==== | ||
- | Un //código de salida// en Bash es un valor en código que representa el resultado de la ejecución apropiada de un programa, representado por un valor entre 0 y 255. Tal número denota el status de salida del último comando introducido, | + | Un //código de salida// en Bash es un valor en código que representa el resultado de la ejecución apropiada de un programa, representado por un valor entre 0 y 255. Tal número denota el status de salida del último comando introducido, |
| '' | | '' | ||
Línea 204: | Línea 204: | ||
</ | </ | ||
- | ==== Operaciones aritméticas | + | ==== Operadores |
- | Utiliza | + | Los [[operadores en unix]] permiten realizar distinto tipo de operaciones en la shell. Bash cuenta con los mismos operadores, y extiende su utilización, |
+ | |||
+ | A continuación encontrarás ejemplos de su uso en Bash. | ||
+ | |||
+ | |||
+ | ===Operadores aritméticos ==== | ||
+ | En Bash podrás encerrar | ||
<code bash> | <code bash> | ||
Línea 215: | Línea 221: | ||
</ | </ | ||
- | ===Ejemplo de operadores aritméticos=== | + | ==Ejemplo de operadores aritméticos== |
Este guion permite ingresar dos valores numéricos para realizar las cinco operaciones básicas: | Este guion permite ingresar dos valores numéricos para realizar las cinco operaciones básicas: | ||
Línea 229: | Línea 235: | ||
echo "La División de $n1 / $n2 es = " $((n1/n2)) | echo "La División de $n1 / $n2 es = " $((n1/n2)) | ||
echo "La Multiplicación de $n1 * $n2 es = " $((n1*n2)) | echo "La Multiplicación de $n1 * $n2 es = " $((n1*n2)) | ||
- | echo " | + | echo " |
</ | </ | ||
Línea 238: | Línea 244: | ||
if [ " | if [ " | ||
if [ " | if [ " | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===Operadores de comparación numérica=== | ||
+ | |||
+ | Como en todos los shells de tipo Unix, en Bash podrás utilizar operadores de comparación numérica. | ||
+ | |||
+ | <code bash> | ||
+ | ((n1 == n2)) ## n1 es igual a n2 | ||
+ | ((n1 != n2)) ## n1 es no igual a n2 | ||
+ | ((n1 > n2)) ## n1 es mayor a n2 | ||
+ | ((n1 >= n2)) ## n1 es mayor o igual a n2 | ||
+ | ((n1 < n2)) ## n1 es menor a n2 | ||
+ | ((n1 <= n2)) ## n1 es menor o igual a n2 | ||
</ | </ | ||
Línea 254: | Línea 274: | ||
</ | </ | ||
- | En forma similar, puedes utilizar operadores de pre-decremento y post-decremento. | + | En forma similar, puedes utilizar |
<code bash> | <code bash> | ||
Línea 264: | Línea 284: | ||
$ variable=10 | $ variable=10 | ||
$ echo $((--variable)) | $ echo $((--variable)) | ||
- | </ | ||
- | |||
- | ===Operadores de comparación numérica=== | ||
- | |||
- | Como en todos los shells de tipo Unix, en Bash podrás utilizar operadores de comparación numérica. | ||
- | |||
- | <code bash> | ||
- | ((n1 == n2)) ## n1 es igual a n2 | ||
- | ((n1 != n2)) ## n1 es no igual a n2 | ||
- | ((n1 > n2)) ## n1 es mayor a n2 | ||
- | ((n1 >= n2)) ## n1 es mayor o igual a n2 | ||
- | ((n1 < n2)) ## n1 es menor a n2 | ||
- | ((n1 <= n2)) ## n1 es menor o igual a n2 | ||
</ | </ | ||
Línea 312: | Línea 319: | ||
</ | </ | ||
- | ===Ejemplo | + | ===Ejemplos |
Usando la declaración if-else ("// | Usando la declaración if-else ("// | ||
- | Este ejemplo implica un condicional // | + | Este ejemplo implica un condicional |
<code bash> | <code bash> | ||
Línea 328: | Línea 335: | ||
else | else | ||
echo "No es correcto" | echo "No es correcto" | ||
+ | fi | ||
+ | </ | ||
+ | |||
+ | Este ejemplo realiza una comparación de cadenas y las compara: | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | read -p " | ||
+ | read -p " | ||
+ | if [ " | ||
+ | then | ||
+ | echo "Ambas cadenas son iguales" | ||
+ | else | ||
+ | echo "Ambas cadenas son diferentes" | ||
fi | fi | ||
</ | </ | ||
Línea 656: | Línea 678: | ||
+ | ====Funciones==== | ||
+ | Una función es una sección de código utilizada para realizar una tarea específica. Estas pueden ser reutilizadas. | ||
+ | >Las funciones también pueden ser llamadas subrutinas o procedimientos. | ||
+ | |||
+ | Sintaxis: | ||
+ | |||
+ | <code bash> | ||
+ | funcationName(){ | ||
+ | // scope of function | ||
+ | } | ||
+ | |||
+ | functionName | ||
+ | </ | ||
+ | |||
+ | ==Crear función == | ||
+ | |||
+ | Puedes crear tu primer funciçon en un guion de bash mostrando la cadena "Hola Tercer Mundo!" | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | funSaludazo(){ | ||
+ | echo " | ||
+ | } | ||
+ | |||
+ | # llama a la función saludazo desde cualquier lugar del guion, por ejemplo, ahora mismo: | ||
+ | |||
+ | funSaludazo | ||
+ | </ | ||
+ | |||
+ | Ejecuta el guion: | ||
+ | |||
+ | <code bash> | ||
+ | $ ./script.sh | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | ==Función con argumento== | ||
+ | Para pasar un argumento a la función debes hacerlo de la misma manera que hacerlo a un comando desde el intérprete de comandos. Las funciones reciben argumentos $1,$2, etcétera. Crea un guion de shell con el siguiente código fuente de bash: | ||
+ | |||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | funArgumentos(){ | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | echo " | ||
+ | } | ||
+ | |||
+ | # Llama a funArgumentos desde cualquier lugar en el guion, utilizando parámetros como los indicados a continuación | ||
+ | |||
+ | funArgumentos 1 Bienvenido a Texto-plano.xyz | ||
+ | </ | ||
+ | |||
+ | Ejecuta el guion desde la shell de Bash: | ||
+ | |||
+ | <code bash> | ||
+ | $ ./guion.sh | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | Primer Argumetno : 1 | ||
+ | Segundo Argumento : Bienvenido | ||
+ | Tercer Argumento : a | ||
+ | Cuarto Argumento : Texto-plano.xyz | ||
+ | </ |