La sintaxis $1 y $2 está reservada para pasar un valor antes de que el script sea ejecutado.
echo "Mi nombre es $1 y mi edad es $2"
El primer valor lo va a almacenar en $1 y el segundo en $2.
~$ ./PruebaScript.sh Taylor 34
Resultado
#!/bin/bash
~$ Mi nombre es Taylor y mi edad es 34
Otros comandos reservados
Existen dos comandos más que sirven para contar y para listar los parámetros.
Contar los parámetros con $#.
Hacer un listado de los parámetros con $@.
echo "Estoy pasando $# parámetros y estos son: $@"
Resultado
Estoy pasando 2 parámetros y esos son: Taylor 34
Calculadora
Una pequeña calculadora con operadores lógicos.
#!/bin/bash
numA=$1
numB=$2
echo "Calculadora"
echo "Numeros A=numA y B=numB"
echo "Sumar A + B = " $((numA + numB))
echo "Restar A - B = " $((numA - numB))
echo "Multiplicar A * B = " $((numA * numB))
echo "Dividir A / B = " $((numA / numB))
echo "Residuo A % B = " $((numA % numB))
Resultado
~$ ./PruebaScript.sh 10 2
Calculadora
Numeros A=10 y B=2
Sumar A + B = 12
Restar A - B = 8
Multiplicar A * B = 20
Dividir A / B = 5
Residuo A % B = 0
Calculadora con operadores relacionales.
#!/bin/bash
numA=$1
numB=$2
echo "A > B = " $((numA > numB))
echo "A < B = " $((numA < numB))
echo "A >= B = " $((numA >= numB))
echo "A <= B = " $((numA <= numB))
echo "A == B = " $((numA == numB))
echo "A != B = " $((numA != numB))
Resultado
~$ ./PruebaScript.sh 10 2
A > B = 1
A < B = 0
A >= B = 1
A <= B = 0
A == B = 0
A != B = 1
Otra manera de pasar parámetros es pidiéndole al usuario que ingrese un valor. Esto lo hacemos con el comando read -p.
read -p "Ingrese el valor de A : numA
read -p "Ingrese el valor de B : numB
De esta manera, el valor de las variables se carga en tiempo de ejecución.
Resultado
~$ ./Calculadora.sh
Ingrese el valor de A: 10
Ingrese el valor de B: 2