"문자열"의 개수가 다름(for 루프)

"문자열"의 개수가 다름(for 루프)

사용자가 5(antall)을 선택했다고 가정하자. 그런 다음 5+6+7+8+4를 (즉시) 인쇄하고 싶습니다. 내 스크립트에는 다음이 인쇄됩니다.

5+6+7+8+4**+**

마지막 +를 제거하는 방법은 무엇입니까? ? (for 루프에서 echo "+"를 시도했지만 올바르게 이해하지 못했습니다)

내 스크립트:

plusse () {

while true; do
random=0
summit=0
read -p "Hvor mange tall vil du plusse>> " antall
echo "Hva er?  "


for (( i=1; i<=$antall; i++ )); do
random=$(( RANDOM % 10 ))
summit=$(( summit + $random ))

echo -n "$random "
    echo -n "+"
done
echo
read -p "Svaret mitt er>> " svarr
echo "$summit"
    if [[ $svarr == $summit ]]; then
        echo "Gratulerer! $svarr er riktig svar! "
        read -p "Vil du fortsette?>> " fortsette
            case $fortsette in
                ja|j|JA|Ja|y|Yes)   continue 
                                    ;;
                nei|n|Nei|n|N)      break 1
                                    ;;
                *)                  exit 1
                                    ;;
            esac
    else
        echo "Beklager, $svarr er feil. Riktig svar er $summit"
        read -p "Vil du fortsette?>> " fortsette
            case $fortsette in
                ja|j|JA|Ja|y|Yes)   continue
                                    ;;
                nei|n|Nei|n|N)      break 1
                                    ;;
                *)                  exit 1
                                    ;;
            esac

    fi
done
}

답변1

귀하의 코드:

for (( i=1; i<=$antall; i++ )); do
random=$(( RANDOM % 10 ))
summit=$(( summit + $random ))

echo -n "$random "
    echo -n "+"
done

~ 할 것이다언제나+선택한 번호 뒤에 를 추가하세요. 다음과 같은 작업을 수행할 수 있습니다.

prefix=""
for (( i=1; i<=$antall; i++ )); do
    random=$(( RANDOM % 10 ))
    summit=$(( summit + $random ))
    echo -n "${prefix}${random}"
    prefix="+"
done

관련 정보