호기심에서 bash 변수 비교 (값은 integer
)를 수행 할 때 an int
또는 a로 선언 된 미리 정의 된 일부 값에 대해 테스트 할 수 있습니다 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()
비교에 대해 더 엄격합니다. 즉, 10 진수 값을 전달하면 f1()
문제가 해결 되지만 문제는 없습니다.