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 | ||
tutorial_de_programacion_en_bash [2023/02/27 17:42] – peron | tutorial_de_programacion_en_bash [2023/06/06 18:27] (actual) – [Tutorial de Programación en Bash] 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 ya has completado [[lenguaje_del_interprete_de_comandos|el primer Tutorial del lenguaje de intérprete de comandos]] y sabes cómo hacer [[script|guiones simples de programación]], | ||
====Variables==== | ====Variables==== | ||
Línea 9: | Línea 8: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
NAME=" | NAME=" | ||
Línea 23: | Línea 22: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
#Define una variable global de bash | #Define una variable global de bash | ||
Línea 43: | Línea 42: | ||
<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 53: | ||
===Cita con cadena=== | ===Cita con cadena=== | ||
- | No existe diferencia al utilizar | + | No existe diferencia al utilizar |
- | El siguiente | + | El siguiente |
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
- | echo ' | + | echo ' |
- | echo " | + | echo " |
- | mkdir 'Dir 1' | + | mkdir 'Directorio |
- | mkdir "Dir 2" | + | mkdir "Directorio |
</ | </ | ||
Línea 72: | Línea 71: | ||
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> | ||
- | # | + | #!/usr/local/bin/bash |
NOMBRE=" | NOMBRE=" | ||
Línea 85: | Línea 84: | ||
====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 96: | ||
===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> | ||
- | # | + | #!/usr/local/bin/bash |
set -xv # Esta línea activa el depurado | set -xv # Esta línea activa el depurado | ||
Línea 133: | Línea 132: | ||
====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 143: | Línea 142: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
echo "Viva Bash, más rápido que un flash!" | echo "Viva Bash, más rápido que un flash!" | ||
Línea 159: | Línea 158: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
STRING=" | STRING=" | ||
Línea 196: | Línea 195: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
read -p " | read -p " | ||
Línea 205: | Línea 204: | ||
==== Operadores ==== | ==== Operadores ==== | ||
+ | Los [[operadores en unix]] permiten realizar distinto tipo de operaciones en la shell. Bash cuenta con los mismos operadores, y extiende su utilización, | ||
- | Estos te permiten realizar distinto tipo de operaciones. | + | A continuación encontrarás ejemplos |
- | Veamos algunos. | ||
===Operadores aritméticos ==== | ===Operadores aritméticos ==== | ||
- | Utiliza | + | En Bash podrás encerrar |
<code bash> | <code bash> | ||
Línea 226: | Línea 225: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
read -p " | read -p " | ||
Línea 235: | Línea 234: | ||
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 309: | Línea 308: | ||
Este programa solicita que ingreses una cifra, y te informa si es mayor a '' | Este programa solicita que ingreses una cifra, y te informa si es mayor a '' | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
read -p " | read -p " | ||
Línea 326: | Línea 325: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
read -p " | read -p " | ||
Línea 360: | Línea 359: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
read -p " | read -p " | ||
Línea 386: | Línea 385: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
read -p " | read -p " | ||
Línea 444: | Línea 443: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
while true | while true | ||
Línea 455: | Línea 454: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
while true | while true | ||
Línea 491: | Línea 490: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
num=1 | num=1 | ||
Línea 565: | Línea 564: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
read -p " | read -p " | ||
Línea 619: | Línea 618: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
for i in 1 2 3 4 5 | for i in 1 2 3 4 5 | ||
Línea 630: | Línea 629: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
for i in {1..5} | for i in {1..5} | ||
Línea 641: | Línea 640: | ||
<code bash> | <code bash> | ||
- | # | + | #!/usr/local/bin/bash |
for dia in DOM LUN MAR MIE JUE VIE SAB DOM | for dia in DOM LUN MAR MIE JUE VIE SAB DOM | ||
Línea 669: | Línea 668: | ||
<code bash> | <code bash> | ||
- | #!/bin/bash | + | #!/usr/local/bin/bash |
for nombrefichero in * | for nombrefichero in * | ||
Línea 678: | Línea 677: | ||
+ | ====Funciones==== | ||
+ | Una función (también llamadas subrutinas o procedimientos) es una sección de código utilizada para realizar una tarea específica. Estas pueden ser reutilizadas. | ||
+ | Sintaxis: | ||
+ | |||
+ | <code bash> | ||
+ | nombreFuncion(){ | ||
+ | // procedimiento de la función | ||
+ | } | ||
+ | |||
+ | nombreFuncion | ||
+ | </ | ||
+ | |||
+ | ===Creación de una función === | ||
+ | |||
+ | Crea tu primer función de un guion de bash para que presente la cadena "Hola Texto-plano.xyz!" | ||
+ | |||
+ | <code bash> | ||
+ | # | ||
+ | |||
+ | funSaludazo(){ | ||
+ | echo " | ||
+ | } | ||
+ | |||
+ | # llama a la función saludazo desde cualquier lugar del guion, por ejemplo, ahora mismo: | ||
+ | |||
+ | funSaludazo | ||
+ | </ | ||
+ | |||
+ | Ejecuta el guion creado: | ||
+ | |||
+ | <code bash> | ||
+ | $ ./saludo.sh | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | |||
+ | ===Función con argumento=== | ||
+ | Para indicarle un argumento a la función es necesario hacerlo de la misma manera que argumentarías cualquier comando desde el intérprete de comandos: agregándolos a continuación con un espacio en blanco. Las funciones reciben argumentos '' | ||
+ | |||
+ | <code 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> | ||
+ | $ ./saludo.sh | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | Primer Argumetno : 1 | ||
+ | Segundo Argumento : Bienvenido | ||
+ | Tercer Argumento : a | ||
+ | Cuarto Argumento : Texto-plano.xyz | ||
+ | </ |