Variables y arrays#

[1]:
%%bash
#
# Las variables en Bash funcionan de forma análoga a las
# variables en otros lenguajes de programación. Note que
# no hay espacio entre el operador de asignación, la
# variable y el contenido
#
var1='hola mundo'
echo $var1
hola mundo
[2]:
%%bash
#
# Siempre se debe usar el simbolo $ para referenciar una variable
#
echo var1
var1
[3]:
%%bash
#
# A una variable se le puede asignar el resultado de un comando:
#
x=$(echo hola mundo)
echo $x
hola mundo
[4]:
%%bash
#
# El shell solo soporta aritmética entera y está diseñado primariamente
# para operaciones del sistema operativo y cadenas de caracteres, por
# lo que en el siguiente código lo que se indica es que se están
# concatenando cadenas de caracteres.
#
x=1
y=$x+1
echo $y
1+1
[5]:
%%bash
#
# Para indicar que se están realizando operaciones aritméticas
# hay dos opciones: la primera es utilizar el operador
# `$((` ... `))`  y la segunda es usar el comando `let`.
#
x=1
y=$((x+1))
echo $y
2
[6]:
%%bash
let x=1
let y=x+1
echo $y
2
[7]:
%%bash
#
# El shell soporta los `+=`, `-=`, ... similares a los del
# lenguaje C. No pueden dejarse espacios alrededor de ellos.
#
let x=1
let x+=1
echo $x
2
[8]:
%%bash
#
# Bash también permite el uso de arrays. Para crear un array
# es necesario colocar sus componentes entre `(` y `)`. Note
# que cuando se imprime con `echo` solo aparece el primer
# elemento.
#
x=(a b c d e)
echo $x
a
[9]:
%%bash
#
# Para acceder a cada uno de los elementos se debe usar el
# operador `[` ... `]`, teniendo en cuenta que el primer
# elemento tiene índice cero, el segundo índice uno y así
# sucesivamente.
#
x=(a b c d e)
echo ${x[1]}
b
[10]:
%%bash
#
# Para imprimir todos los elementos se debe usar `[*]`.
#
x=(a b c d e)
echo ${x[*]}
a b c d e
[11]:
%%bash
#
# Se pueden usar las estructuras de iteración anteriores para
# recorrer los elementos del vector.
#
x=(a b c d e)
for n in ${x[*]}
do
    echo $n
done
a
b
c
d
e
[12]:
%%bash
#
# Los elementos del vector también pueden ser modificados.
#
x=(a b c d e)
x[2]='hola'
for n in ${x[*]}
do
    echo $n
done
a
b
hola
d
e