예상치 못한 토큰 'else' 근처의 오류를 수정하는 방법

예상치 못한 토큰 'else' 근처의 오류를 수정하는 방법

17번째 줄에서 구문 오류가 발생합니다: 예기치 않은 토큰 `else'

declare -i A

echo "enter any numeric value"
read value

if [$value > 0]; 
    if [[ "$value" =~ ^[0-9]+$ ]]; then
        A=$value
    else
        if ! [[$value =~ ^[0-9]+$ ] || $value !=0];then
        A=$[RANDOM%20+1]
        fi
    fi
else 
    A=$((RANDOM%25+16))
fi
echo"the value of |A| is $A"

답변1

사용된shellcheck.net구문 문제를 해결하려면

업데이트된 코드:

#!/bin/bash

declare -i A

echo "enter any numeric value"
read -r value

if [ "$value" -gt 0 ] ; then
    if [[ "$value" =~ ^[0-9]+$ ]]; then
        A=$value
    else
        if ! [[ "$value" =~ ^[0-9]+$ || "$value" != 0 ]] 
        then
            A=$((RANDOM%20+1))
        fi
    fi
else 
    A=$((RANDOM%25+16))
fi
echo "The value of |A| is $A"

관련 정보