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 02:38] – [Tutorial de Programación en Bash] peron | tutorial_de_programacion_en_bash [2023/04/07 01:30] – [Bucle for] 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 110: | Línea 110: | ||
</ | </ | ||
- | Ahora corre el script... | + | Ahora corre el guion... |
<code bash> | <code bash> | ||
- | $ ./script.sh | + | $ ./guion.sh |
</ | </ | ||
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 " |
+ | </ | ||
+ | |||
+ | ===Operadores de comparación de cadena=== | ||
+ | Utiliza doble igual ('' | ||
+ | |||
+ | <code bash> | ||
+ | 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 246: | 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 257: | Línea 285: | ||
$ echo $((--variable)) | $ echo $((--variable)) | ||
</ | </ | ||
+ | |||
+ | |||
===== Condicionales ===== | ===== Condicionales ===== | ||
En un lenguaje de programación se utilizan bucles para repetir la ejecución de un bloque de código hasta que se satisfaga una condición definida. Esto es sumamente útil para realizar tareas repetitivas. Existen tres tipos de bucles principales: | En un lenguaje de programación se utilizan bucles para repetir la ejecución de un bloque de código hasta que se satisfaga una condición definida. Esto es sumamente útil para realizar tareas repetitivas. Existen tres tipos de bucles principales: | ||
Línea 277: | Línea 307: | ||
===Ejemplo if-then=== | ===Ejemplo if-then=== | ||
+ | Este programa solicita que ingreses una cifra, y te informa si es mayor a '' | ||
<code bash> | <code bash> | ||
# | # | ||
Línea 289: | Línea 319: | ||
</ | </ | ||
- | ===Ejemplo | + | ===Ejemplos |
- | Usando la declaración if-else, es posible ejecutar una declaración condicional si esta resulta falsa. Para ello se define un bloque de texto con '' | + | Usando la declaración if-else |
+ | |||
+ | Este ejemplo implica un condicional por comparación numérica. Dará // | ||
<code bash> | <code bash> | ||
# | # | ||
- | read -p " | + | read -p " |
if [ $myvar -gt 10 ] | if [ $myvar -gt 10 ] | ||
Línea 306: | Línea 338: | ||
</ | </ | ||
- | Este texto difiere en que si es verdadero que el valor ingresado por el usuario es mayor a '' | + | Este ejemplo realiza una comparación de cadenas |
+ | |||
+ | <code bash> | ||
+ | # | ||
+ | |||
+ | read -p " | ||
+ | read -p " | ||
+ | if [ " | ||
+ | then | ||
+ | echo "Ambas cadenas son iguales" | ||
+ | else | ||
+ | echo "Ambas cadenas son diferentes" | ||
+ | fi | ||
+ | </ | ||
===Ejemplo if-elif-else=== | ===Ejemplo if-elif-else=== | ||
- | La condición **elif** (else-if) se usa para incorporar múltiples condicionales '' | + | La condición **elif** (else-if, "si además" |
- | En este ejemplo de condicioniales // | + | En este ejemplo de condicioniales // |
<code bash> | <code bash> | ||
Línea 335: | Línea 381: | ||
===Ejemplo de condicionales if anidados === | ===Ejemplo de condicionales if anidados === | ||
- | Con los **if anidados**, | + | Con los **if anidados**, |
- | Por ejemplo, | + | Por ejemplo, |
<code bash> | <code bash> | ||
# | # | ||
- | read -p "Ingresa el valor de i :" | + | read -p "Cuantas copas tiene Boca :" |
- | read -p "Ingresa el valor de j :" | + | read -p "Cuantas copas tiene River :" |
- | read -p "Ingresa el valor de k :" | + | read -p "Cuantas copas tiene Independiente |
- | if [ $i -gt $j ] | + | if [ $boca -gt $river ] |
then | then | ||
- | if [ $i -gt $k ] | + | if [ $boca -gt $independiente |
then | then | ||
- | echo "i es el mayor" | + | echo "Boca es el más grande" |
else | else | ||
- | echo "k es el mayor" | + | echo "Independiente |
fi | fi | ||
else | else | ||
- | if [ $j -gt $k ] | + | if [ $river -gt $independiente |
then | then | ||
- | echo "j es el mayor" | + | echo "River es el más grande" |
else | else | ||
- | echo "k es el mayor" | + | echo "Independiente |
fi | fi | ||
fi | fi | ||
Línea 632: | 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 | ||
+ | </ |