En Linux se pueden definir variables y arrays para facilitar la programación. La diferencia es que una variable almacena un dato mientras que un array almacena varios y se puede acceder a ellos individualmente.
Variables
Para asignar una variable usamos simplemente el nombre que queremos usar pero para mostrar su valor usamos el comando echo
y la variable precedida del símbolo "$"
, para indicar que queremos que echo nos devuelva el valor de la variable y no el nombre que indicamos. Veamos unos ejemplos:
$ a=1 $ #Imprimimos la cadena literal a $ echo a a $ #Imprimimos la varible a $ echo $a 1 $ #Otros ejemplos $ variable1=cascanueces $ echo $variable1 cascanueces $ kpj33='Entrecomillado para usar espacios' $ echo $kpj33 Entrecomillado para usar espacios $#Asignamos a una varible otra variable $ a=xy $ b=$a $ echo $b xy $ #Con comillas simples no interpreta la variable $ #en el siguiente ejemplo $a $ c='La variable a tiene por valor $a' La variable a tiene por valor $a $ #En general en linux las comillas dobles $ #si interpretan las variables $ c="La variable a tiene por valor $a" La variable a tiene por valor xy
Arrays
Los arrays tienen una sintaxis diferente para asignarlos a las variables, precisamene para poder diferenciarlos. Posteriormente se pueden mostrar los elementos uno a uno.El índice del primer elemento es el 0 no el 1. Veámoslo con unos ejemplos.
$ #v es una variable $ v="a b c" $ #a es un array $ a=(a b c) $ #Puedo imprimir la variable v $ echo $v a b c $ #La misma sintaxis me imprimirá solo el primer elemento de un array $ echo $a a $ #Que equivale a $ echo ${a[0]} a $ #Para imprimir cualquier elemento $ echo ${a[1]} b $ echo ${a[2]} c $ #Para imprimir todos $ echo ${a[*]} a b c $ #Curiosamente se admiten expresiones matemáticas, para imprimir el elemento 2=1+1 $ echo ${a[1+1]} c
La sintaxis de array solo funciona para variables, o si se aplica a una variable la interpreta como un array de un elemento
$ v="a b c" $ echo ${v[0]} a b c $ echo ${v[1]} $ #El elemento 1 ya no existe
Nos ha imprimido el resultado correcto en el primer caso, pero dado que no existe un segundo elemento en el segundo ejemplo no imprime nada. Por último, podemos obtener el número de elementos de un array “contándolos” con el símbolo "#"
:
$ v=(a b c d) $ echo ${#v[*]} 4
Asignando la salida de un comando
Podemos utilizar la salida de un comando a modo de variable generalmene en cualquier contexto y en particular para asignarlo a una variable ejecutándolo entre $()
. Para ellos usaremos el comando seq
. Veamos un ejemplo de creación de una variable:
$ seq 1 5 1 2 3 4 5 $ v=$(seq 1 5) $ echo $v 1 2 3 4 5
De forma similar para crear un array con la sintaxis de un array usando ()
:
$ v=($(seq 1 5)) $ echo ${#v[*]} 5 $ echo ${v[2]} 3
[…] el tercer ejemplo usamos la salida de un comando dentro del condicional. Para ellos listaremos en un columna los ficheros y directorios del […]
[…] variables para su entorno. El funcionamiento de las variables de entorno es el mismo que las variables normales. Se suelen diferenciar usando normalmente letras mayúsculas para […]