You can simply do

    echo $RANDOM

But for more details see below the excerpt from Mendel Cooper's 
Advanced BASH Scripting Guide. If you want to get into BASH you 
can download the whole document from LDP which is mirrored in 
http://www.q-linux.com/LDP/

Benj

 >     Note: $RANDOM is an internal Bash function (not a 
constant) that
 >     returns a pseudorandom integer in the range 0 - 32767. 
$RANDOM
 >     should not be used to generate an encryption key.
 >
 > Example 3-39. Generating random numbers
 >
 >#!/bin/bash
 >
 ># $RANDOM returns a different random integer at each invocation.
 ># Nominal range: 0 - 32767 (signed integer).
 >
 >MAXCOUNT=10
 >count=1
 >
 >echo
 >echo "$MAXCOUNT random numbers:"
 >echo "-----------------"
 >while [ "$count" -le $MAXCOUNT ]      # Generate 10 
($MAXCOUNT) random integers.
 >do
 >  number=$RANDOM
 >  echo $number
 >  let "count += 1"  # Increment count.
 >done
 >echo "-----------------"
 >
 ># If you need a random int within a certain range, then use 
the 'modulo' operator.
 ># This returns the remainder of a division operation.
 >
 >RANGE=500
 >
 >echo
 >
 >number=$RANDOM
 >let "number %= $RANGE"
 >echo "Random number less than $RANGE  -->  $number"
 >
 >echo
 >
 ># If you need a random int greater than a lower bound,
 ># then set up a test to discard all numbers below that.
 >
 >FLOOR=200
 >
 >number=0   #initialize
 >while [ "$number" -le $FLOOR ]
 >do
 >  number=$RANDOM
 >done
 >echo "Random number greater than $FLOOR -->  $number"
 >echo
 >
 >
 ># May combine above two techniques to retrieve random number 
between two limits.
 >number=0   #initialize
 >while [ "$number" -le $FLOOR ]
 >do
 >  number=$RANDOM
 >  let "number %= $RANGE"  # Scales $number down within $RANGE.
 >done
 >echo "Random number between $FLOOR and $RANGE -->  $number"
 >echo
 >
 >
 ># May generate binary choice, that is, "true" or "false" value.
 >BINARY=2
 >number=$RANDOM
 >T=1
 >
 >let "number %= $BINARY"
 ># let "number >>= 14"    gives a better random distribution
 ># (right shifts out everything except last binary digit).
 >if [ "$number" -eq $T ]
 >then
 >  echo "TRUE"
 >else
 >  echo "FALSE"
 >fi
 >
 >echo
 >
 >
 ># May generate toss of the dice.
 >SPOTS=7
 >DICE=2
 >ZERO=0
 >die1=0
 >die2=0
 >
 ># Tosses each die separately, and so gives correct odds.
 >
 >  while [ "$die1" -eq $ZERO ]   #Can't have a zero come up.
 >  do
 >    let "die1 = $RANDOM % $SPOTS"
 >  done
 >
 >  while [ "$die2" -eq $ZERO ]
 >  do
 >    let "die2 = $RANDOM % $SPOTS"
 >  done
 >
 >let "throw = $die1 + $die2"
 >echo "Throw of the dice = $throw"
 >echo
 >
 >
 >exit 0
 >
 > ...it is best to "reseed" the RANDOM generator each time it is
 > invoked. Using the same seed for RANDOM repeats the same 
series of
 > numbers. (This mirrors the behavior of the random() function 
in C.)
 >
 > Example 3-41. Reseeding RANDOM
 >
 >#!/bin/bash
 ># Seeding the RANDOM variable.
 >
 >MAXCOUNT=25   # How many numbers to generate.
 >
 >random_numbers ()
 >{
 >count=0
 >while [ "$count" -lt "$MAXCOUNT" ]
 >do
 >  number=$RANDOM
 >  echo -n "$number "
 >  let "count += 1"
 >done
 >}
 >
 >echo; echo
 >
 >RANDOM=1   # Setting RANDOM seeds the random number generator.
 >random_numbers
 >
 >echo; echo
 >
 >RANDOM=1          # Same seed for RANDOM...
 >random_numbers    # ...reproduces the exact same number series.
 >
 >echo; echo
 >
 >RANDOM=2          # Trying again, but with a different seen...
 >random_numbers    # gives a different number series.
 >
 >echo; echo
 >
 ># RANDOM=$$  seeds RANDOM from process id of script.
 ># It is also possible to seed RANDOM from 'time' or 'date'.
 >
 ># Getting fancy...
 >SEED=$(head -1 /dev/urandom | od -N 1 | awk '{ print $2 }')
 ># Pseudo-random output fetched from /dev/urandom (system 
pseudo-random "device"),
 ># then converted to line of printable (octal) numbers by "od",
 ># finally "awk" retrieves just one number for SEED.
 >RANDOM=$SEED
 >random_numbers
 >
 >echo; echo
 >
 >exit 0
 >
 >     Note: The /dev/urandom device/file provides a means of 
generating
 >     much more "random" pseudorandom numbers than the $RANDOM 
variable.
 >     dd if=/dev/urandom of=targetfile bs=1 count=XX creates a 
file of
 >     well-scattered pseudorandom numbers. However, assigning these
 >     numbers to a variable in a script requires a workaround, 
such as
 >     filtering through od (as in above example).
 >
 >


Chris G Haravata wrote:

 >anybody have a random number generator application?  i've 
searched through
 >sourceforge.net and freshmeat.net and both came out nada. 
help will be very
 >much appreciated. thanks!
 >
 >-----------------------
 >Spawn - The Scourge of the Damned
 >
 >Chris G Haravata
 >IT Resource Officer-Magallanes
 >Asia Pacific College (http://www.apc.edu.ph)
 >#3 Humabon Place, Magallanes Subd.,
 >Makati City
 >Tel No 8529232 loc 402
 >Cell No 0916.3500465
 >
 >
 >
 >---
 >Outgoing mail is certified Virus Free.
 >Checked by AVG anti-virus system (http://www.grisoft.com).
 >Version: 6.0.298 / Virus Database: 161 - Release Date: 11/13/2001
 >
 >_
 >Philippine Linux Users Group. Web site and archives at 
http://plug.linux.org.ph
 >To leave: send "unsubscribe" in the body to 
[EMAIL PROTECTED]
 >
 >To subscribe to the Linux Newbies' List: send "subscribe" in 
the body to [EMAIL PROTECTED]
 >
 >


</div>

_
Philippine Linux Users Group. Web site and archives at http://plug.linux.org.ph
To leave: send "unsubscribe" in the body to [EMAIL PROTECTED]

To subscribe to the Linux Newbies' List: send "subscribe" in the body to 
[EMAIL PROTECTED]

Reply via email to