Well I have been experimenting with sleep <secs> to give me a smaller time accurate to about + or - 5mS on this MacBook Pro, OSX 10.7.5.
It would be good enough for the Egg_Timer.sh and passes the ShellCheck test.
It is fully posix compliant with SLEEPs unity seconds timer only.
Boy am I gonna get some flak over this one, (yes I bend the rules a little)... ;o)
As I quoted in a previous post I could create a resonably accurate timer using 'afplay', 'aplay' or '/dev/dsp'. I might use afplay and make it Apple dedicated...
Thanks Don for the info...
I await the flak... ;o)
I'm not sure if this is flak or not, but I'm not sure that I understand what this script is trying to do.
Just using POSIX-defined features in your shell script does not mean that your shell script will give you the same results on all POSIX-conforming systems.
If the idea is to sleep for a particular number of seconds and milliseconds on OS X version 10.7.5 with the particular amount and type of memory present on your system with the same CPU you're using and with the same disk drive you're using under similar load conditions, the code above might come close to doing what you want. But, for small sub-second sleeps, the amount of time spent forking and execing awk and sleep may overwhelm your other calculations. And, if you invoke this script several times, the first time it runs is likely to be slower than subsequent runs since awk, sleep, and this script will need to be loaded from disk the first time it runs, while subsequent runs in the not too distant future can be loaded from the cache.
So, although the way you are performing the calculations in this script is portable, the calculations you are performing are not portable to any other hardware and software configuration because what you are really calculating is how long it will take to fork(), exec sleep, run sleep 0, and waitpid() for the exit status from the sleep 0. All of this is very dependent on your hardware and is not portable to any different configuration. Note also that the wait in your loop is a relatively quick no-op. The wait would only take any significant amount of time if your script had started background jobs that had not previously been waited for. (Your script never starts any background jobs, so all the wait built-in does is loop through the zero background jobs running in the current shell waiting for each one to complete before it returns a zero exit status.)
Although:
where sss is a given number of seconds and mmm is a given number of milliseconds to sleep is not portable between various systems, it is portable and will give you much more consistent sleep times between various versions of hardware running various versions of OS X (at least for releases of OS X greater than or equal to 10.0). It will also work on other BSD or Linux based systems and, if you use a 1993 or later ksh instead of bash, on any system using that shell. (ksh93 has a built-in sleep that accepts fractional seconds; bash version 3.2.57 does not have a built-in sleep on OS X.)
If you want a portable way to sleep for a given number of seconds and nano-seconds in a shell script that will work on any POSIX-conforming system, you'll need to write your own nanosleep utility in C that calls the nanosleep() function with the seconds and nanoseconds specified by operands given when it is invoked and then call that utility from your script. Or you can configure your script to invoke the system's sleep utility if it supports sub-second sleeps, or invoke your nanosleep utility otherwise.
This User Gave Thanks to Don Cragun For This Post:
Hi Don...
You are of course correct in what you have quoted. I was well aware of my sleep alternative's limitations so I decided to embed a delay into a shell script. You suggested a C program to do the job, so here goes...
Results:-
ShellCheck results for the script:-
I don't want to expand any escape sequences...
Hi drl...
I could do it in python too.
Thanks both for the feedback...
Last edited by wisecracker; 07-12-2016 at 06:24 AM..
Reason: Correct typo.
The code in my post #11 works without a hitch on a stock AMIGA A1200(HD), AMIGA-OS 3.0x, with and wihout a 4MB Fastram upgrade, running the 'ADE' unix install for the AMIGA...
Is it slow to run the shell script? Yes.
Are there any errors? No.
Even /usr/bin/echo exists - cool.
It uses 'ksh[88?]' inside the default AMIGA shell window which has a subset of terminal escape codes.
KSH version is:- @(#)PD KSH v5.2.12 Geek Gadgets Amiga port 97/08/13 .
I need to set password compliance for some servers in my company.
However, the requirements are that we need to set different password policies for 3 different user groups within the company. These are :
System Users: i.e root, etc
Batch/Application Users: oracle, bscs, etc
Standard User:... (0 Replies)
Hi i am in new to Linux world . I have been assigned to a project to find out a tool that will fulfill the PCI compliance for Linux servers for Audit process. anyone have any recommendation on that. Do Rad hat have any native application or plug-ins which we can use for that. (1 Reply)
From the nessus scanner tool report i got below vulnerability
PCI DSS Compliance : Insecure Communication Has Been Detected
http://www.tenable.com/plugins/index.php?view=single&id=56208
As per the description given in above link - I am not able to understand
How to find insecure port... (2 Replies)
In different online sources, I found bits and pieces of information about those square and angular brackets and pipes. From what I have read, I can conclude it looks like this:
1. Options outside any brackets are mandatory
2. Options inside these < .. > are mandatory too
3. Options inside ... (4 Replies)
Hello,
I am trying to convince my boss to stop allowing our users to login as root (superuser). Currently our users login to our unix server with their own account, then as needed, they will do an su and put in the root password.
This scares me, for a bunch of reasons. Mainly, one is that we... (1 Reply)