LINUX LITE 7.2 FINAL RELEASED - SEE RELEASE ANNOUNCEMENTS SECTION FOR DETAILS


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Shell script returning divide by zero error
#1
'lite-tweaks-super' returning the following error:


Code:
:~/$ lite-tweaks-super
/usr/bin/lite-tweaks-super: line 812: ((: PERCENTAGE = 100 * 1 / 0 : division by 0 (error token is "0 ")

The 'while read  line' loop should not in theory at least by the looks execute any iterations if '$TOTAL_LINES' is zero, my scripting is largely POSIX (blame BSD) and not Bash so off the top of my head I'm not entirely sure what is going on here:


Code:
## Arrays execution
run_icon=/usr/share/icons/Faenza/actions/32/system-run.png
x=0
for k in "${!ARRAYC}"; do  x=$(( $x + 1 )); done  # Get the total number of selected items in the array

    TOTAL_LINES=$x

    printf '%s \n' "${ARRAYC}"|
    while read  line
        do
            $line     # Execute functions one by one
            if [ $? = 1 ]; then
                zenity --info --title=" Lite Tweaks" --text="Error:\n${line}"
            fi
        let i++
         (( PERCENTAGE = 100 \* ${i} / ${TOTAL_LINES} ))
         echo "$PERCENTAGE"

        if [ "$PERCENTAGE" == "100" ]; then
            echo "#Done"
            sleep 1
        fi
Reply
#2
(03-26-2017, 08:06 PM)Tegid link Wrote: 'lite-tweaks-super' returning the following error:

[tt]
:~/$ lite-tweaks-super
/usr/bin/lite-tweaks-super: line 812: ((: PERCENTAGE = 100 * 1 / 0 : division by 0 (error token is "0 ")
[/tt]

The 'while read  line' loop should not in theory at least by the looks execute any iterations if '$TOTAL_LINES' is zero, my scripting is largely POSIX (blame BSD) and not Bash so off the top of my head I'm not entirely sure what is going on here:

[tt]
## Arrays execution
run_icon=/usr/share/icons/Faenza/actions/32/system-run.png
x=0
for k in "${!ARRAYC[@]}"; do  x=$(( $x + 1 )); done  # Get the total number of selected items in the array

    TOTAL_LINES=$x

    printf '%s \n' "${ARRAYC[@]}"|
    while read  line
        do
            $line    # Execute functions one by one
            if [ $? = 1 ]; then
                zenity --info --title=" Lite Tweaks" --text="Error:\n${line}"
            fi
        let i++
        (( PERCENTAGE = 100 \* ${i} / ${TOTAL_LINES} ))
        echo "$PERCENTAGE"

        if [ "$PERCENTAGE" == "100" ]; then
            echo "#Done"
            sleep 1
        fi

    done| zenity --progress --width=320 --window-icon="$run_icon" --pulsate --no
[/tt]

Looks to me you are calling lite-tweaks-super instead of lite-tweks. Call lite-tweaks instead which is the one that passes all arrays to lite-tweak-super when needed.
https://unlockforus.com

Sorry for seeming stupid and preferring Linux - I just don't know any better.

[Image: AGxgqJ6.png]
Reply
#3
Ha, cheers, those pesky assumptions again.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)