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"