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

Reply via email to