On a 64-bit ubuntu system I had to include the ".sh" like this: j...@selmer%date -u +%s && ./unixtime.sh 1260823644 1260823644
since: j...@selmer%date -u +%s && ./unixtime 1260823676 -bash: ./unixtime: No such file or directory My $SHELL is /bin/bash but your script uses /bin/sh which here is j...@selmer%ls -l /bin/sh lrwxrwxrwx 1 root root 4 2009-06-25 11:41 /bin/sh -> dash dash? John 2009/12/13 Dr. David Kirkby <david.kir...@onetel.net>: > If you have a system with the GNU version of date, then > > date -u +%s > > will give the seconds since the Epoch. Unfortunately, it only works with GNU > date, and so will not work on Solaris, HP-UX or no doubt many other Unix > systems. > > The following script should compute this is a portable manner. Here's a few > examples > > On sage.math, where date accepts +%s > > kir...@sage:~$ date -u +%s && ./unixtime > 1260720556 > 1260720556 > > > On an HP-UX system, where date does *not* accept +%s > > bash-2.04$ uname -a > HP-UX hpbox B.11.11 U 9000/785 2016698240 unlimited-user license > bash-2.04$ ./unixtime && date -u +%s > 1260720771 > date: bad format character - s > > On an OpenSolaris system, where date does *not* accept +%s > > bash-3.2$ ./unixtime && date -u +%s > 1260720823 > %s > > > On an IBM server running AIX 6.1, where date does accept +%s > > $ uname -a > AIX client1 1 6 00C6B7C04C00 > $ ./unixtime && date -u +%s > 1260721013 > 1260721013 > > > > For every system I am able to check this on, the following script gives > exactly > the same output as the GNU date command, but in a more portable manner. > > Could a few people check it on their systems. > > If it does work, I'd propose it is used in place of the GNUism introduced in > http://trac.sagemath.org/sage_trac/ticket/6744 > > Currently the file .BUILDSTART created by #6744 is not actually used anywhere > in > Sage, but clearly the intension is to use it at some point, in which case it > will be found not to work on some systems. > > Dave > ----------------------------------------------- > > > #!/bin/sh > # Compute seconds since the Epoch. > > # Call 'date'. Note that > # %Y = year including century > # %j = day number (1-365) > # %H = hour (0-23) > # %M = minute (0-59) > # %S = seconds (0-59) > > if type env >/dev/null 2>&1 ; then > set -- `env LC_ALL=C LC_TIME=C LANG=C date -u '+%Y %j %H %M %S'` > else > set -- `date -u '+%Y %j %H %M %S'` > fi > > # $1 = year including century > # $2 = day number (1-365) > # $3 = hour (0-23) > # $4 = minute (0-59) > # $5 = seconds (0-59) > > if [ $? -ne 0 ] || [ $# -lt 5 ] ; then > TIME="Error computing seconds since the Epoch" > fi > > DAYS=`expr 365 \* \( $1 - 1970 \) + \( $1 - 1969 \) / 4 + $2 - 1` > TIME=`expr $5 + 60 \* \( $4 + 60 \* \( $3 + 24 \* $DAYS \) \)` > echo $TIME > > > -- > To post to this group, send an email to sage-devel@googlegroups.com > To unsubscribe from this group, send an email to > sage-devel+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/sage-devel > URL: http://www.sagemath.org > -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org