Por curiosidad, al hacer una comparación de variables bash (su valor es un integer) es posible probarlo con algún valor predefinido, ya sea declarado como into como a string.
Script de muestra :
#!/bin/bash
f1()
{
[ "$1" == "1" ] && echo "$FUNCNAME: \"1\" compared as string"
}
f2()
{
[[ "$1" -eq 1 ]] && echo "$FUNCNAME: \"1\" compared as int"
}
f1 $1
f2 $1
Salida :
$ ./param.sh 1
f1: "1" compared as string
f2: "1" compared as int
y
$ ./param.sh blah
$
Ambas funciones se comportan de la misma manera, por lo que me pregunto si hay una forma preferida al verificar una variable entera. Iría a comprobar intversus, intya que es más estricto, pero me pregunto si hay algún inconveniente al hacerlo string.
En este caso, f2()también es más estricto acerca de la comparación, es decir, pasar un valor decimal lo romperá, mientras f1()que no tendrá ningún problema.