I've asked this on comp.unix.shell, but never got a 100% satsifactory answer. Perhaps someone here might know.
Does anyone know how to get the number of seconds since 1/1/1970 on a Unix system using the shell - not compiling C code. I can't assume the computer has perl, python or a C compiler. http://shell.cfajohnson.com/cus-faq.html#Q6 says: ------------------------------------------------------ - GNU date has the %s format option which returns the epoch time. - More portably, use awk. awk 'BEGIN {srand(); printf("%d\n", srand())}' This works because srand() sets its seed value with the current epoch time if not given an argument. It also returns the previous seed value, so the second call gives the epoch time. Note that this doesn't work with older versions of awk. This requires a version supporting the POSIX spec for srand(). For example, on Solaris this will not work with /usr/bin/awk, but will with nawk or /usr/xpg4/bin/awk. ------------------------------------------------------------- The problem is, from what I gather, POSIX only says the random number generator has to be seeded from the time, but not what time. Most awks use seconds since the epoch, but apparently OpenBSD does not. Someone has proposed that microseconds since midnight would be better. There appears to be no standard. The awk/srand method has worked for me on AIX, HP-UX, Linux, OS X and Solaris. For the purpose I have for this, leapseconds would be best ignored, though it is not essential they are. Dave _______________________________________________ time-nuts mailing list -- time-nuts@febo.com To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow the instructions there.