予期しないトークン '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"

おすすめ記事