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 int
o 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 int
versus, int
ya 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.