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"