parent nodes: UnixLinuxCygwinApuntes

variables

Variables en scripts de bash

src: http://structio.sourceforge.net/guias/AA_Linux_colegio/scripts-basicos-para-bash.html
http://lucas.hispalinux.es/COMO-INSFLUG/COMOs/Bash-Prog-Intro-COMO/Bash-Prog-Intro-COMO-6.html

Declaración asignación

Sin símbolo de dolar
MI_VAR=3

Entrada de valores a variables

Sin símbolo de dolar
echo "Enter a number: "
read NUMBER


read -p "Teclee nombre y apellido: " NOMBRE APELLIDO

Lectura de la variable

Con símbolo de dolar
echo $MI_VAR
echo $NUMBER
También para variables de sistema
echo $PATH

Variables numéricas: let

let A=100
let B=200
let C=$A+$B

echo "A: $A | B: $B | C: $C"


Expansiones

bash trata algunos caracteres de forma especial: ' " { } $. Al asignar una variable o iniciar un comando bash "expande" estos caracteres y su contexto de varias formas :

$var - Expansión de variables o parámetros

$0 Nombre del script o del shell.
$1 Primer parámetro pasado al script
$2 Segundo parámetro pasado al script
$# La cantidad de parámetros que el script recibe.
$* Todos los parámetros que el script haya recibido, un parámetro se separa de otro con el valor de la variable IFS que normalmente es un espacio.
$? Valor de retorno al sistema operativo, por convención 0 significa operacióne exitosa y números diferente representan errores. $? se expande al número retornado por el último programa ejecutado en primer plano.
$- Opciones que se pasaron al script durante su ejecución.
$$ Identificación del proceso del intérprete de comandos.
$! Identificación del proceso del último comando que se ejecutó en segundo plano.

"texto" - citas

{letras} - expansión de corchetes

`comando` o $(comando) - sustitución de comandos

    TEXTOS=`ls *.txt`
    ls $(cat rutas.txt)
'texto' - citas

$((expresión)) - expansión aritmética

    echo "1+2 es $((1+2))"