Spinner Function for Shell Scripts

Devin Teske dteske at vicor.com
Fri Nov 19 19:28:11 UTC 2010


On Nov 19, 2010, at 7:12 AM, Christian Weisgerber wrote:

> Devin Teske <dteske at vicor.com> wrote:
> 
>>>> So, just as the subject-line says, ... here's an efficient and robust
>>>> spinner function compatible with many shells.
>>>>                       DONE=$( /bin/sh -c 'read -t 0 DONE; echo $DONE' )
>>> 
>>> Is this expected to be portable to other operating systems? The dash
>>> shell, used as /bin/bash in Ubuntu, does not acept the "-t" argument
>>> to the read builtin command. Using /bin/bash solves the problem.
>> 
>> I was shooting for bourne-shell,
> 
> FreeBSD's /bin/sh is *not* a Bourne shell.

I see that now from the sh(1) manual (had been assuming it was true to its roots from 4.4BSDLite -- ala FreeBSD-1.0). More akin to Korn shell while maintaining POSIX.2 spec.




> 
>> It's rather unfortunate that bourne-shell has what we need but is not
>> available on all operating systems since many OSes have started swapping
>> out bourne-shell for it's younger cousin.
> 
> A traditional Bourne shell, such as Solaris's, does not implement
> read -t at all.

Thanks!

I guess that means that this code is specific to FreeBSD. I guess that means I love FreeBSD even more than I did before. Unfortunately, that means that if I want to implement this spinner on any other platform, I'll have to resort to my previous impementations -- using backgrounding and/or temporary files on-disk.


> 
> -- 
> Christian "naddy" Weisgerber                          naddy at mips.inka.de
> 
> _______________________________________________
> freebsd-hackers at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"

--
Cheers,
Devin Teske

-> CONTACT INFORMATION <-
Business Solutions Consultant II
FIS - fisglobal.com
510-735-5650 Mobile
510-621-2038 Office
510-621-2020 Office Fax
909-477-4578 Home/Fax
devin.teske at fisglobal.com

-> LEGAL DISCLAIMER <-
This message  contains confidential  and proprietary  information
of the sender,  and is intended only for the person(s) to whom it
is addressed. Any use, distribution, copying or disclosure by any
other person  is strictly prohibited.  If you have  received this
message in error,  please notify  the e-mail sender  immediately,
and delete the original message without making a copy.

-> END TRANSMISSION <-



More information about the freebsd-hackers mailing list