저는 다음과 같은 프로그램을 실행하고 있습니다.
min_val=1
max_val=100
int=50
if [[ "$int" =~ ^-?[0-9]+$ ]]; then
if [[ "$int" -ge "$min_val" && -le "$max_val" ]]; then
echo "$int is within $min_val to $max_val."
else
echo "$int is out of range."
fi
else
echo "int is not an integer." >&2
exit 1
fi
오류가 보고되었습니다.
$ bash test_integer3.sh
test_integer3.sh: line 12: conditional binary operator expectedtest_integer3.sh:
line 12: syntax error near `"$max_val"'test_integer3.sh:
line 12: ` if [[ "$int" -ge "$min_val" && -le "$max_val" ]]; then'
한줄 한줄 꼼꼼히 살펴봤습니다.
무엇이 문제일까요?
답변1
if [[ "$int" -ge "$min_val" && -le "$max_val" ]]; then
두 가지 비교를 통해 비교 해야 합니다 $int
.
if [[ "$int" -ge "$min_val" ]] && [[ "$int" -le "$max_val" ]]; then
또는,
if (( int >= min_val )) && (( int <= max_val )); then
답변2
귀하의 -le
왼쪽 피연산자가 없습니다.