tutorial_de_programacion_en_bash

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
tutorial_de_programacion_en_bash [2023/02/27 20:35] – [Operadores] perontutorial_de_programacion_en_bash [2023/06/06 18:27] (actual) – [Tutorial de Programación en Bash] peron
Línea 2: Línea 2:
 [[Bash]] es una [[interpretes de comandos|shell]], que además cuenta con un  //lenguaje de comandos interpretado// incorporado. Esto te permite escribir [[script|guiones]] y correrlos directamente en tu entorno. [[Bash]] es una [[interpretes de comandos|shell]], que además cuenta con un  //lenguaje de comandos interpretado// incorporado. Esto te permite escribir [[script|guiones]] y correrlos directamente en tu entorno.
  
-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]], sin dudas este tutorial te enseñará algunas de sus características más avanzadas de Bash.
 ====Variables==== ====Variables====
  
Línea 9: Línea 8:
  
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
  
 NAME="Tutoriales texto-plano.xyz" NAME="Tutoriales texto-plano.xyz"
Línea 23: Línea 22:
  
 <code bash> <code bash>
-#!/usr/bin/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
 </code> </code>
  
-Generalmente se suele definir estas variables en mayñusculas, por ejemplo: ''PATH'', ''SHELL'', ''HOME'', ''LANG'', ''PWD'' y muchas mas.+Generalmente se suele definir estas variables en mayúsculas, por ejemplo: ''PATH'', ''SHELL'', ''HOME'', ''LANG'', ''PWD'' y muchas mas.
  
 ==== Citas ==== ==== Citas ====
Línea 54: Línea 53:
 ===Cita con cadena=== ===Cita con cadena===
  
-No existe diferencia al utilizar una comilla simple ''<nowiki>''</nowiki>'' o comillas ''""'' mientras operas con textos simples y cadenas.+No existe diferencia al utilizar apóstrofo ''<nowiki>'...'</nowiki>'' o comillas ''"..."'' mientras operas con textos simples y cadenas.
  
-El siguiente guión correrá sin errores y presentará el mensaje indicado y creará ambos directorios:+El siguiente guion correrá sin errores y presentará el mensaje indicado y creará ambos directorios:
  
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
  
-echo 'Cadena entre comillas simples+echo 'Cadena apostrofada
-echo "Cadena entre comillas"+echo "Cadena entrecomillada"
  
-mkdir 'Dir 1' +mkdir 'Directorio 1' 
-mkdir "Dir 2"+mkdir "Directorio 2"
 </code> </code>
  
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 guión. La primer echo presentará el valor de la variable (ej. ''Bienvenid@ ~fulana''). Pero la segunda variable solo presentará ''$NOMBRE'' porque está entre comillas simples:+Ejecuta el siguiente guion. La primer echo presentará el valor de la variable (ej. ''Bienvenid@ ~fulana''). Pero la segunda variable solo presentará ''$NOMBRE'' porque está entre comillas simples:
  
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
  
 NOMBRE="Bienvenid@ ~$USER" NOMBRE="Bienvenid@ ~$USER"
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 ''set -xv'' dentro del guión o en la línea de comando cuando ejecutes el guión para depurarlo.+El guionado de Bash provee una funcionalidad de depuración durante el tiempo de ejecución. Emplea el comando ''set -xv'' dentro del guion o en la línea de comando cuando ejecutes el guion para depurarlo.
  
 ===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/bin/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, en otras palabras, es la indicación que dá - al cese de su ejecución - el proceso hijo, al retornar al su proceso padre.+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, en otras palabras, es la indicación que da - al cese de su ejecución - el proceso hijo, al retornar al su proceso padre.
  
 | ''0'' - Success | Un //valor cero// (0) representa éxito. | | ''0'' - Success | Un //valor cero// (0) representa éxito. |
Línea 143: Línea 142:
  
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
    
 echo "Viva Bash, más rápido que un flash!" > /tmp/fichero_prueba.txt echo "Viva Bash, más rápido que un flash!" > /tmp/fichero_prueba.txt
Línea 159: Línea 158:
  
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
    
 STRING="fulana" STRING="fulana"
Línea 196: Línea 195:
  
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
    
 read -p "Ingresa tu nombre de usuari@: " miusuario read -p "Ingresa tu nombre de usuari@: " miusuario
Línea 211: Línea 210:
  
 ===Operadores aritméticos ==== ===Operadores aritméticos ====
-Utiliza entre paréntesis dobles ''<nowiki>(())</nowiki>'' para realizar las operaciones aritméticas sobre variables constituidas por valores numéricos en Bash, según esta sintaxis:+En Bash podrás encerrar entre paréntesis dobles ''<nowiki>(())</nowiki>'' para realizar las operaciones aritméticas sobre variables constituidas por valores numéricos, según esta sintaxis:
  
 <code bash> <code bash>
Línea 226: Línea 225:
  
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
  
 read -p "Ingresa un valor numérico: " n1 read -p "Ingresa un valor numérico: " n1
Línea 309: Línea 308:
 Este programa solicita que ingreses una cifra, y te informa si es mayor a ''10''. Este programa solicita que ingreses una cifra, y te informa si es mayor a ''10''.
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
    
 read -p "Ingrese un valor numérico: " myvar read -p "Ingrese un valor numérico: " myvar
Línea 326: Línea 325:
  
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
    
 read -p "Ingresa una cifra: " myvar read -p "Ingresa una cifra: " myvar
Línea 360: Línea 359:
  
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
    
 read -p "Ingresa tus calificaciones: " calificacion read -p "Ingresa tus calificaciones: " calificacion
Línea 386: Línea 385:
  
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
    
 read -p "Cuantas copas tiene Boca :" boca read -p "Cuantas copas tiene Boca :" boca
Línea 444: Línea 443:
  
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
  
 while true while true
Línea 455: Línea 454:
  
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
    
 while true while true
Línea 491: Línea 490:
  
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
    
 num=1 num=1
Línea 565: Línea 564:
  
 <code bash> <code bash>
-#!/usr/bin/bash+#!/usr/local/bin/bash
    
 read -p "Ingresa una cadena:" choice read -p "Ingresa una cadena:" choice
Línea 619: Línea 618:
  
 <code bash> <code bash>
-#!/usr/bin/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/bin/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/bin/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  //llamada a la función
 +</code>
 +
 +===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!". Elabora el guion de Shell "saludo.sh" con el siguiente código fuente:
 +
 +<code bash>
 +#!/usr/local/bin/bash
 +
 +funSaludazo(){
 +    echo "¡Hola texto-plano.xyz!";
 +}
 +
 +# llama a la función saludazo desde cualquier lugar del guion, por ejemplo, ahora mismo:
 +
 +funSaludazo
 +</code>
 +
 +Ejecuta el guion creado:
 +
 +<code bash>
 +$ ./saludo.sh
 +</code>
 +
 +<code>¡Hola texto-plano.xyz!</code>
 +
 +===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 ''$1'', ''$2'', etcétera. En consecuencia, para crear un guion de shell con argumento podrías incluir un código semejante a este:
 +
 +<code bash>
 +#!/usr/local/bin/bash
 +
 +funArgumentos(){
 +   echo "Primer Argumento: " $1
 +   echo "Segundo Argumento: " $2
 +   echo "Tercer Argumento: " $3
 +   echo "Cuarto Argumento: " $4
 +}
 +
 +# 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 
 +</code>
 +
 +Ejecuta el guion desde la shell de Bash:
 +
 +<code bash>
 +$ ./saludo.sh
 +</code>
 +
 +<code>
 +Primer Argumetno : 1
 +Segundo Argumento : Bienvenido
 +Tercer Argumento : a
 +Cuarto Argumento : Texto-plano.xyz
 +</code>
  • tutorial_de_programacion_en_bash.1677530108.txt.gz
  • Última modificación: 2023/02/27 20:35
  • por peron