[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Potentially misleading documentation of SECONDS variable
From: |
alex xmb sw ratchev |
Subject: |
Re: Potentially misleading documentation of SECONDS variable |
Date: |
Tue, 6 Aug 2024 18:18:27 +0200 |
try
unset -v SECONDS
first
On Tue, Aug 6, 2024, 17:24 Bash-help via Bug reports for the GNU Bourne
Again SHell <bug-bash@gnu.org> wrote:
> Reading the manual at
> <https://www.gnu.org/software/bash/manual/bash.html#Bash-Variables>
> regarding the SECONDS variable, it states that
> " [..] Assignment to this variable resets the count to the value assigned,
> and the expanded value becomes the value assigned plus the number
> of seconds since the assignment. [..]"
>
> This implies that assigning the variable at time X with value Y would
> reset SECONDS to Y. When expanding the variable at time X+Z the
> value should be Y+Z. The text also implies whole seconds, i.e. not
> milliseconds or other fractions of seconds, are considered. However, it
> would seem as if the
> underlying mechanism to update SECONDS (the system clock)
> are actually considering fractions of seconds and not whole seconds.
> Below is a small programming that shows my point:
>
> #!/bin/bash
>
> while true; do
> SECONDS=0
> sleep 0.5
> if [ "$SECONDS" != "0" ]; then
> printf 'This is unexpected: %s != 0\n' "$SECONDS"
> fi
> done
>
> As we sleep less than a full second the expanded value of SECONDS should
> never be greater than 0 but it sometimes is. I guess this is because the
> assignment might occur, say X.7 seconds and the expanded value will then
> read (X+1).2 which would be rounded down to (X+1).
>
> This might not be a bug but it is at least misleading when reading the
> documentation and produces unexpected and inconsistent behaviour in some
> cases.
>
> Version of Bash used to test this behaviour:
> GNU bash, version 5.2.32(1)-release (x86_64-pc-linux-gnu)
>
- Potentially misleading documentation of SECONDS variable, Bash-help, 2024/08/06
- Re: Potentially misleading documentation of SECONDS variable,
alex xmb sw ratchev <=
- Re: Potentially misleading documentation of SECONDS variable, Koichi Murase, 2024/08/06
- Re: Potentially misleading documentation of SECONDS variable, alex xmb sw ratchev, 2024/08/06
- Re: Potentially misleading documentation of SECONDS variable, bash, 2024/08/06
- Re: Potentially misleading documentation of SECONDS variable, Chet Ramey, 2024/08/07
- Re: Potentially misleading documentation of SECONDS variable, G. Branden Robinson, 2024/08/07
- Re: Potentially misleading documentation of SECONDS variable, Chet Ramey, 2024/08/07
- Re: Potentially misleading documentation of SECONDS variable, felix, 2024/08/15
- Re: Potentially misleading documentation of SECONDS variable, Bash-help, 2024/08/15
- Re: Potentially misleading documentation of SECONDS variable, Martin D Kealey, 2024/08/18
Re: Potentially misleading documentation of SECONDS variable, Chet Ramey, 2024/08/06