Herramientas de usuario

Diferencias

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

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
tutorial_de_programacion_en_bash [2023/06/06 18:27] – [Tutorial de Programación en Bash] perontutorial_de_programacion_en_bash [2026/04/21 16:09] (actual) – editor externo 127.0.0.1
Línea 53: Línea 53:
 ===Cita con cadena=== ===Cita con cadena===
  
-No existe diferencia al utilizar apóstrofo ''<nowiki>'...'</nowiki>'' o comillas ''"..."'' mientras operas con textos simples y cadenas.+No existe diferencia al utilizar apóstrofo ''<nowiki>'...'</nowiki>'' o comillas ''<nowiki>"..."</nowiki>'' mientras operas con textos simples y cadenas.
  
 El siguiente guion 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:
Línea 139: Línea 139:
 ===Ejemplo=== ===Ejemplo===
  
-Escribe un programa para escribir una cadena de texto en ''/etc/fichero_prueba.txt'' y ejecútalo para ver si funciona correctamente:+Escribe un programa para escribir una cadena de texto en ''/tmp/fichero_prueba.txt'' y ejecútalo para ver si funciona correctamente:
  
-<code bash>+<file bash fichero_prueba.txt>
 #!/usr/local/bin/bash #!/usr/local/bin/bash
    
Línea 151: Línea 151:
   echo "Lo siento, no puedo escribir en /tmp/fichero_prueba.txt"   echo "Lo siento, no puedo escribir en /tmp/fichero_prueba.txt"
 fi fi
-</code>+</file>
  
  
Línea 157: Línea 157:
 Este fichero buscará la cadena ''fulana'' en el fichero ''/etc/passwd''. Este fichero buscará la cadena ''fulana'' en el fichero ''/etc/passwd''.
  
-<code bash>+<file bash buscapersona.sh>
 #!/usr/local/bin/bash #!/usr/local/bin/bash
    
-STRING="fulana"+CADENA="fulana"
    
-if grep ${STRING} /etc/passwd+if grep ${CADENA} /etc/passwd
 then then
   echo "Si! Encontré la cadena"   echo "Si! Encontré la cadena"
Línea 168: Línea 168:
   echo "Buu!, no encontré la cadena"   echo "Buu!, no encontré la cadena"
 fi fi
-</code>+</file>
  
 ====Entrada de Usuario==== ====Entrada de Usuario====
Línea 180: Línea 180:
 </code> </code>
  
-También podrás indicar algún texto que se presentará a modo de informacióna la hora de solicitar la entrada:+También podrás indicar algún texto con ''-p'', que se presentará a modo de información a la hora de solicitar la entrada:
  
 <code bash> <code bash>
-read -p "Dime tu nombre de usuari@: " miusuario+read -p "Dime tu nombre de usuari@: " tuusuario
 </code> </code>
  
-Podrás utilizar el argumento **-sp** para no mostrar lo que tecleas (útil para guardar secreto en pantalla).+Podrás utilizar el argumento ''-sp'' para no mostrar lo que tecleas (útil para guardar secreto en pantalla).
  
 <code bash> <code bash>
-$ read -sp "Dime de que equipo eres fanátic@: " miequipo+$ read -sp "Dime de que equipo eres fanátic@: " tuequipo
 </code> </code>
  
 Utiliza en un guion de Bash la funcionalidad del comando //read// para solicitar el ingreso de datos al usuario: Utiliza en un guion de Bash la funcionalidad del comando //read// para solicitar el ingreso de datos al usuario:
  
-<code bash>+<file bash dime_tu_nombre.sh>
 #!/usr/local/bin/bash #!/usr/local/bin/bash
    
-read -p "Ingresa tu nombre de usuari@: " miusuario +read -p "Ingresa tu nombre de usuari@: " tuusuario 
-read -sp "Dime de qué equipo eres fanátic@: " miequipo+read -sp "Dime en secreto de qué equipo eres fanátic@: " tuequipo
    
-echo -e "\nTu nombre de usuari@ es $miusuario y tu equipo favorito es $miequipo+echo -e "\nTu nombre de usuari@ es $tuusuario y tu equipo favorito es $tuequipo
-</code>+</file>
  
 ==== Operadores ====  ==== Operadores ==== 
Línea 210: Línea 210:
  
 ===Operadores aritméticos ==== ===Operadores aritméticos ====
-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:+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>
-(expresion)) +((expresion)) 
-(variable1+variable2)) +((variable1+variable2)) 
-(variable1-variable2)) +((variable1-variable2)) 
-(variable1*variable2)) +((variable1*variable2)) 
-(variable1/variable2))+((variable1/variable2))
 </code> </code>
  
Línea 297: Línea 297:
  
 <code bash> <code bash>
-if [ condicion ]+if [ condición ]
 then then
   hacer-algo   hacer-algo
Línea 310: Línea 310:
 #!/usr/local/bin/bash #!/usr/local/bin/bash
    
-read -p "Ingrese un valor numérico: " myvar+read -p "Ingrese un valor numérico: " mivariable
    
-if [ $myvar -gt 10 ]+if [ $mivariable -gt 10 ]
 then then
     echo "El valor es mayor que 10"     echo "El valor es mayor que 10"
Línea 327: Línea 327:
 #!/usr/local/bin/bash #!/usr/local/bin/bash
    
-read -p "Ingresa una cifra: " myvar+read -p "Ingresa una cifra: " mivariable
    
-if [ $myvar -gt 10 ]+if [ $mivariable -gt 10 ]
 then then
     echo "Correcto"     echo "Correcto"
Línea 384: Línea 384:
 Por ejemplo, este programa solicita ingresar 3 valores numéricos como entrada y realiza una comparación numérica para analizar cuál es el valor mayor. Por ejemplo, este programa solicita ingresar 3 valores numéricos como entrada y realiza una comparación numérica para analizar cuál es el valor mayor.
  
-<code bash>+<file bash el_mas_grande.sh>
 #!/usr/local/bin/bash #!/usr/local/bin/bash
    
-read -p "Cuantas copas tiene Boca :" boca +read -p "Cuantas copas tiene Boca :" copasboca 
-read -p "Cuantas copas tiene River :" river +read -p "Cuantas copas tiene River :" copasriver 
-read -p "Cuantas copas tiene Independiente :" independiente+read -p "Cuantas copas tiene Independiente :" copasindependiente
    
-if [ $boca -gt $river ]+if [ $copasboca -gt $copasriver ]
 then then
-    if [ $boca -gt $independiente ]+    if [ $copasboca -gt $copasindependiente ]
     then     then
         echo "Boca es el más grande"         echo "Boca es el más grande"
Línea 400: Línea 400:
     fi     fi
 else else
-    if [ $river -gt $independiente ]+    if [ $copasriver -gt $copasindependiente ]
     then     then
         echo "River es el más grande"         echo "River es el más grande"
Línea 407: Línea 407:
     fi     fi
 fi fi
-</code>+</file>
  
 ==== While ==== ==== While ====
Línea 515: Línea 515:
 En este ejemplo el se leerá en bucle línea a línea de ''nombre_fichero.txt'' y asignará el valor a la variable ''mivariable''. En este ejemplo el se leerá en bucle línea a línea de ''nombre_fichero.txt'' y asignará el valor a la variable ''mivariable''.
  
 +__Ver también__: [[while.sh]] (ejemplo ''while-do-done''))
  
 +====Until====
 +
 +//Until//, es una instrucción de control que sirve para generar bucles, en los cuales grupos de instrucciones anidadas dentro de un bloque se ejecutan de forma repetida hasta que se cumpla una condición. Sigue la sintaxis ''until-do-done''.
 +
 +Cabe destacar que Until, primero comprobará si se cumple la condición y si se cumple y sólo si se cumple entonces finaliza la secuencia de las instrucciones contenidas entre do y done.
 +
 +Cada vez que se ejecuta un bucle completo (paso de bucle) vuelve a verificar si se cumple la condición antes de volver a ejecutar otro paso de bucle.
 +
 +===Ejemplo Until-do-done===
 +<code bash>
 +until [ "condición lógica" ]
 +do
 +     acción 1
 +     acción 2
 +     acción n
 +done
 +</code>
 +
 +==do y done==
 +
 +Las acciones entre ''do'' y ''done'' se repetirán secuencialmente hasta que se cumpla la "condición lógica". Cuando la "condición lógica" sea verdadera, no se ejecutará ninguna "acción" y finalizará el bucle. 
 +===Ejemplo Do-Done===
 +<code bash>
 +<limite=5
 +i=10;
 +
 +until [ $limite -gt $i ]
 +do
 +     echo Acción $i ejecutada
 +     let i=$i-1
 +done
 +</code>
 +
 +El ejemplo anterior mostraría por pantalla:
 +<code>
 +Acción 10 ejecutada
 +Acción 9 ejecutada
 +Acción 8 ejecutada
 +Acción 7 ejecutada
 +Acción 6 ejecutada
 +Acción 5 ejecutada
 +</code>
 ==== case ==== ==== case ====
  
Línea 676: Línea 719:
 </code> </code>
  
 +__Ver también__: [[manzanas.sh]] (Ejemplo bucle ''for-if'')
 ====Funciones==== ====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.+ 
 +Una //función// (también llamadas //subrutinas// //procedimientos//) es una sección de código utilizada para realizar una tarea específica. Estas pueden ser reutilizadas.
  
 Sintaxis: Sintaxis:
Línea 694: Línea 738:
 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: 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>+<file bash saludo1.sh>
 #!/usr/local/bin/bash #!/usr/local/bin/bash
  
Línea 704: Línea 748:
  
 funSaludazo funSaludazo
-</code>+</file>
  
 Ejecuta el guion creado: Ejecuta el guion creado:
  
 <code bash> <code bash>
-$ ./saludo.sh+$ ./saludo1.sh
 </code> </code>
  
Línea 715: Línea 759:
  
 ===Función con argumento=== ===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: 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>+<file bash saludo2.sh>
 #!/usr/local/bin/bash #!/usr/local/bin/bash
  
Línea 730: Línea 775:
  
 funArgumentos 1 Bienvenido a Texto-plano.xyz  funArgumentos 1 Bienvenido a Texto-plano.xyz 
-</code>+</file>
  
 Ejecuta el guion desde la shell de Bash: Ejecuta el guion desde la shell de Bash:
  
 <code bash> <code bash>
-$ ./saludo.sh+$ ./saludo2.sh
 </code> </code>
  
 <code> <code>
-Primer Argumetno : 1+Primer Argumento : 1
 Segundo Argumento : Bienvenido Segundo Argumento : Bienvenido
 Tercer Argumento : a Tercer Argumento : a
 Cuarto Argumento : Texto-plano.xyz Cuarto Argumento : Texto-plano.xyz
 </code> </code>

Este sitio web utiliza cookies para guardar datos esenciales de su actividad, como su autenticación. Al entrar acepta el uso de cookies.

Más información