Curso de Linux N14. Programación en Bash 001: Variables, argumentos, shift, comentarios, palabras reservadas

avatar
(Edited)

Cordiales Saludos


0_14portada.png

A partir de esta publicación Programación en Bash abordaré todo lo relacionado con Bash de una forma independiente. Antes referenciaba la programación bash al final de la explicación de algún tema o comando de linux. La división permitirá estructurar mejor el Curso de Linux.

Todos los ejercicios estarán en el repositorio de GitLab:


banner_bash.png

Variables

El uso de las variables dentro de la programacíón en bash tienen su sintaxis como el siguiente ejemplo: VAR1="Palabra", es decir debe estar todo unido, el identificador de la variable, el signo de igual y el valor de la variable.

Tipo String

En los tipos string podemos usar tanto comillas simples como comillas dobles. En la siguiente captura se aprecia como podemos visualizar las variables de distintas formas utilizando el comando echo. Y hacemos un repaso de la concatenación de variables. Este es el formato para tratar las variables en bash: ${VAR1}


0_14__1.png

Código

#!/bin/bash
#script_7.sh
echo Mostrando Variables
VAR1="Palabra"
VAR2="Esta es una Frase"
echo "Esta es VAR1: ${VAR1}" #Primera Forma 
echo "Esta es VAR2: " ${VAR2} #Segunda forma
V="Nombre"
echo "${V}"
echo ${V}
#..............................

# En un ejercicio anterior
# Concatenando variables
echo "Concatenando variables"
echo "Script Saludo"
V1='Hola'
V2='Mundo'
V3="${V1} ${2}"
echo "${V3}"

Ejecución del código

$ bash script_7.sh 
Mostrando Variables
Esta es VAR1: Palabra
Esta es VAR2:  Esta es una Frase
Nombre
Nombre
Concatenando variables
Script Saludo
Hola 


separador.png

Tipo numérico

Al igual que las variables tipo string deben estar junto el identificador, el signo igual y el valor. Cuando se trabaja con números debemos usar el doble paréntesis. Este es el formato para tratar las variables numéricas en bash: $(( NUM1 + NUM2 ))


0_14__2.png

Código

#!/bin/bash
#script_8.sh

echo "Variables Numéricas"
NUM1=1
NUM2=3
SUMA=$(( NUM1 + NUM2 ))
echo "La suma es:  ${SUMA}"  

echo "La suma de 4 + 7 es: " $(( 4 + 7 ))

Ejecución del código

$ bash script_8.sh 
Variables Numéricas
La suma es:  4
La suma de 4 + 7 es:  11


separador.png

Pasando Argumentos a nuestro script

Podemos enviar valores a nuestros script como argumentos. Para pasar los argumentos colocamos el nombre del script seguido de los argumentos como se ve en la siguiente sintaxis: script_9.sh 1 3, los argumentos son los números 1 y 3.
Al enviar los argumentos son recibidos sus valores en las variables especiales: $1 y $2, donde el número determina la posición del argumento.


0_14__3.png

Código

#!/bin/bash
#script_9.sh

echo "Variables Numéricas - Recibiendo argumentos"
NUM1=$1
NUM2=$2
SUMA=$(( NUM1 + NUM2 ))
echo "La suma es:  ${SUMA}"

Ejecutando el código

$ bash script_9.sh 1 3 
Variables Numéricas - Recibiendo argumentos
La suma es:  4


separador.png

Variables especiales

Ya conocemos las variables especiales: $1, primer argumento, $2 segundo argumento, y así sucesivamente. Se complementan con las variables:

  • $0 : Nombre del script
  • $# : Cantidad de argumentos
  • $@ : Todos los argumentos pasados al script
  • $LINENO: Número de lineas del script

    0_14__4.png

    Código
#!/bin/bash
#script_10.sh
echo "Argumentos - Variables especiales"
echo "Primer argumento pasado: " $1
echo "Segundo argumento pasado: " $2
echo "Este es el nombre del Script: " $0
echo "Cantidad de argumentos pasados al script: " $#
echo "Argumentos pasados a este script: " $@
echo "Número de líneas del script: " $LINENO

Ejecución del código

$ bash script_10.sh 1 3 
Argumentos - Variables especiales
Primer argumento pasado:  1
Segundo argumento pasado:  3
Este es el nombre del Script:  script_10.sh
Cantidad de argumentos pasados al script:  2
Argumentos pasados a este script:  1 3
Número de líneas del script:  9


separador.png

shift

Con shift podemos alterar la posición de los argumentos que entran al script. El valor de shift más 1, determinará a partir de que posición se tomarán los argumentos.
En el siguiente ejemplo shift tiene el valor de 1, entonces se tomarán los argumentos a partir del segundo valor, en este caso el número 2, el cual tomará la primera posición. Omitiéndose el numero 1 de los argumentos.

$ cat script_12.sh 
#!/bin/bash
# script_12.sh
echo "Cambiando orden de los argumentos"
shift 1 
echo "shift 1"
echo 1= $1
echo 2= $2 
echo 3= $3 
$ bash script_12.sh 1 2 3
Cambiando orden de los argumentos
shift 1
1= 2
2= 3
3=

En este caso shift tiene el valor de 2, es decir se tomarán los valores a partir del tercer argumento. El tercer argumento tomará el primer lugar.

$ cat script_12.sh 
#!/bin/bash
# script_12.sh
echo "Cambiando orden de los argumentos"
shift 2 
echo "shift 2"
echo 1= $1
echo 2= $2 
echo 3= $3 
$ bash script_12.sh 1 2 3
Cambiando orden de los argumentos
shift 2
1= 3
2=
3=


separador.png

Comentarios

Los comentarios de una sola línea comienzan con el signo: #. Ésto ya se había tratado en publicaciones anteriores.
Ahora para la realización de comentarios de múltiples líneas los podemos hacer como podemos observar en la siguiente captura de pantalla.


0_14__5.png

Puedes profundizar en el siguiente enlace el tema de Heredoc.

Código

#!/bin/bash
# script_11.sh
# Un solo comentario

: 'Comentario de varias
lineas por ejemplo
este tiene cuatro
lineas
' 

:
<<!
Comentario de
multilinea. Son
tres lineas
!

<<Comento
Otra forma de comentario es usando el 'Heredoc'
donde podemos cambiar la palabra que contiene el comentario.
XXX Aquí use: Comento.
Fin del comentario 
Comento

# Encontrarás multiples comentarios
# dentro del sistema que puedes hacer, 
# igual funciona.

echo "Hola" 

Ejecución del código

$ bash script_11.sh 
Hola


separador.png

Palabras Reservadas

Como cualquier lenguaje de programación Bash posee una lista de palabras que no podemos utilizar como variables dentro de nuestro script.

ifthenelifelsefitime
forinuntilwhiledodone
caseesaccoprocselectfunction

Te recomiendo que revises mis Publicaciones anteriores referentes a la rpogramación en BAsh

{1} Curso de Linux N03

Temas Tratados:

  • Shebang, hash-bang o sharpbang (#!)
  • Distintas formas de ubicar nuestro Shell: /bin/bash
  • Nuestro primer Script en Bash

{2} Curso de Linux N04

Temas Tratados:

  • Uso de Nano
  • Comandos echo, date y cal, Coemntarios
  • Ejecutando nuestros scripts
  • variables en Bash

{3} Curso de Linux N09

Temas Tratados:

  • Concatenando Variables
  • Visualizando con echo: HOSTNAME, USER, HOME

{4} Curso de Linux N10.

Temas Tratados:

  • Concatenando Texto con echo
  • Comillas dobles con echo

{5} Curso de Linux N11

Temas Tratados:

  • Visualización de lista de ejercicios en nuestro directorio: cat bash_0.
  • Creación de un archivo de texto desde un script en bash


separador.png

IMPORTANTE: Los comando vistos aquí y en próximas publicaciones están limitados para mostrarlos y conceptualizarlos para nuestro quehacer diario. Cada comando tiene muchas opciones que debemos investigar por nuestra propia cuenta cuando estemos trabajando con ellos. Aprovechemos el internet para conocer en profundidad el comando que estemos estudiando y en primer orden no olvidemos lo potente y todo lo que nos brinda el comando man para conocer la sintaxis y todo lo relacionado con todos los comandos que tenemos en nuestro sistema sin recurrir a internet.


bannerfundamentos.png

Trabajando con nuestro repositorio en GitLab

El repositorio de los ejercicios de Bash se creó en mi laptop (Puedes ver la publicación), en este momento estoy usando la PC, entonces cloné el repositorio en este equipo(Ver como clonar repositorio).

Se revisó el repositorio en GitLAb, donde se determina que hay un nuevo script.


0_14fundament_2.png

Verificando que en nuestro repositorio no se encuentra el archivo script_6.sh por medio del comando ls. Se procede a actualizar el repositorio local con el comando: git pull. Podemos observar al final de la captura de pantalla de mi terminal que ya aparece el archivo: script_6.sh.


0_14fundament_1.png

Así actualice mi repositorio

rafael@HP:~/.r/hp_bash_ejercicios$ 
rafael@HP:~/.r/hp_bash_ejercicios$ git status

Archivos sin seguimiento:
  (usa "git add <archivo>..." para incluirlo a lo que se será confirmado)
    documento.txt
    hola.txt
    script_10.sh
    script_11.sh
    script_12.sh
    script_7.sh
    script_8.sh
    script_9.sh

rafael@HP:~/.r/hp_bash_ejercicios$ git add *.sh
rafael@HP:~/.r/hp_bash_ejercicios$ git commit -m "Ejercicios del 7 al 12"
rafael@HP:~/.r/hp_bash_ejercicios$ git push

Ver repositorio de ejercicios


Practicando enlace simbólico

Aquí un uso del enlace simbólico.


0_14fundament_3.png


Todos a practicar, incluyéndome! Nos vemos en la próxima publicación...

--- AVISO: Es importante que nuestra información personal (documentos, imágenes, fotos, etc) estén respaldadas en otro medio físico o en la nube. No solamente porque estemos haciendo este curso sino como práctica diaria.---

Mi Twitter



0
0
0.000
1 comments
avatar

Thanks for your contribution to the STEMsocial community. Feel free to join us on discord to get to know the rest of us!

Please consider delegating to the @stemsocial account (85% of the curation rewards are returned).

You may also include @stemsocial as a beneficiary of the rewards of this post to get a stronger support. 
 

0
0
0.000