help-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Can Bash do simple math?


From: alex xmb sw ratchev
Subject: Re: Can Bash do simple math?
Date: Tue, 6 Aug 2024 01:01:46 +0200

~ $ bash ext.dateseconds 300 700

700 - 300 ; 400 6 0

~ $ cat ext.dateseconds

(( sec = $2 - $1 , min = sec / 60 , hr = min / 60 ))

res="$2 - $1 ; $sec $min $hr"

printf %s\\n "$res"

On Tue, Aug 6, 2024, 00:34 <bash@blaklinten.xyz> wrote:

> I have a somewhat strange issue.
> In a script I use the `((VAR = expression ))` syntax to calculate a
> simple remainder by division:
>
>   ((DIFF = $2 - $1))
>   ((SECONDS = DIFF % 60))
>   ((MINUTES = (DIFF % 3600) / 60))
>   ((HOURS = DIFF / 3600))
>
>   echo "$HOURS:$MINUTES:$SECONDS"
>
> However, it seems as if Bash sometimes miscalculates the remainder and
> prints an errorneous result string.
>
> I have written a small example and had some friends run it to confirm
> this issue is not only on my machine.
> I highly doubt Bash _sometimes_ miscalculates basic math and neither
> me or my friends can spot any errors in my code. Am I stupid? What am
> I missing?
>
> The minimal example code to produce an error:
> https://gist.github.com/blaklinten/3dd29f3f73b75337a86b8d7cdb59bdd7
>
> I am eager to hear thoughts on this :)
>
>


reply via email to

[Prev in Thread] Current Thread [Next in Thread]