З цікавості під час порівняння баш-змінної (її значення є integer
) можна перевірити її на певне заздалегідь визначене значення або оголошено як int
або як string
.
Приклад сценарію :
#!/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
Вихід :
$ ./param.sh 1
f1: "1" compared as string
f2: "1" compared as int
і
$ ./param.sh blah
$
Обидві функції поводяться однаково, і тому мені цікаво, чи є бажаний спосіб при перевірці цілочисленної змінної? Я б хотів перевірити int
порівняно, int
як це більш суворо, але мені цікаво, чи є якісь зворотні звороти для цього string
?
У цьому випадку f2()
також більш суворо ставиться до порівняння, тобто передача десяткового значення порушить його, тоді як це f1()
буде приймати без проблем.