Per curiosità, quando si esegue un confronto di variabili bash (il cui valore è un integer) è possibile testarlo con un valore predefinito dichiarato come into come string.
Script di esempio :
#!/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
Uscita :
$ ./param.sh 1
f1: "1" compared as string
f2: "1" compared as int
e
$ ./param.sh blah
$
Entrambe le funzioni si comportano allo stesso modo, quindi mi chiedo se esiste un modo preferito quando si controlla una variabile intera? Vorrei fare un controllo intrispetto intal fatto che è più rigoroso, ma mi chiedo se ci siano degli svantaggi nel farlo string?
In questo caso, f2()è anche più rigoroso il confronto, vale a dire che passare un valore decimale lo interromperà, mentre non f1()lo prenderà nessun problema.