Re: random number generator

mikeyzman <[email protected]>
Newsgroups gmane.comp.gnu.m4.general
Message-ID <[email protected]>
Thanks for the response

I put in a $SHELL call so you can see what is going on:
esyscmd(`printf $SHELL')dnl
esyscmd(`printf $USER')dnl
esyscmd(`printf $RANDOM')dnl

yields:

/bin/bashdnl
mikezdnl
printf: 1: usage: printf format [arg ...]


So I tried your suggestion, standalone (esyscmd([/bin/bash -c 'printf
"$RANDOM"']))

and here is my output:

include(`m4include1')
sh: [/bin/bash: not found
m4: esyscmd subprocess failed

Im running M4 on Ubuntu, I don't know if that matters, I apt-got M4 the
other day so Im sure its recent.  BTW I used M4 for years at a former
company, but Im not familiar with the [] notation.  It seems to me they are
the same as start and end ticks?  (`')

Thanks



Eric Blake-3 wrote:
> 
> On 08/18/2010 11:25 AM, mikeyzman wrote:
>> 
>> Im having trouble generating random numbers with M4.  I found a thread on
>> the
>> subject but the recommended defs do not work
>> 
>>>> m4 lacks a random number generator builtin. I think it would be great
>>>> if
>> such builtin existed. Currently I use something like:
>> dnl random(num): Evaluates to a random number from range 0..num-1.
>> define([random],[eval(esyscmd(printf $RANDOM) % $1)])dnl
> 
> What is your /bin/sh?  $RANDOM is a bash extension, and if your /bin/sh
> is dash, that would explain why you are not passing any argument to
> printf.  You can modify your esyscmd to force bash:
> 
> esyscmd([/bin/bash -c 'printf "$RANDOM"'])
> 
> -- 
> Eric Blake   [email protected]    +1-801-349-2682
> Libvirt virtualization library http://libvirt.org
> 
> 
>  
> 

-- 
View this message in context: http://old.nabble.com/random-number-generator-tp29473901p29474086.html
Sent from the Gnu - M4 - Discuss mailing list archive at Nabble.com.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.