Hi Barry,
That looks quite neat and Posixy!
Some comments and ideas:
- The sleep command is not used in a POSIX compliant ways, since it gets fed a float here, and in POSIX it can only handle integers. An alternative is maybe to fill the hourglass more or less from the start, depending on the number of minutes / seconds, and compensate the rest with the first sleep command.
- Instead of using awk to cut the first 6 characters you could use "${platform%"${platform#??????}"}" or better yet, replace the if statements with one case statement and use it pattern matching capability CYGWIN*), so you do not need to cut the platform string.
- The awk command substitutions in the 2nd for loop take time and will skew the time slightly. An alternative is to use parameter expansions or predefine the strings so that it does not add as much to the time used by the sleep commands..
- Perhaps you could have a seconds countdown instead of the static number.
- If more time is entered than what the hourglass can handle, graphically turn the hourglass (nice scripting challenge?)