How To Generate Random Number In Bash Linux?

Linux bash provides different ways to generate random numbers. Random numbers can be used for different cases like security, selection, generating random content, etc. Linux bash can be used to generate random numbers by using the operating system devices, commands, etc.

Using the $RANDOM Environment Variable

The bash shell provides the $RANDOM environment variable which returns a random number every time it is called. The echo command can be used to print random numbers using the $RANDOM variable like below.

$ echo $RANDOM

The generated random number can be assigned into a variable easily using the bash assignment operator. In the following example, we generate a random number using the $RANDOM variable and set it to the variable named “r”.

r=$RANDOM

The $RANDOM environment variable returns a wide range of random numbers. We can limit the end of the random number using the module operator like below. In the following example, we limit the end of the random as “20”.

$ echo $(($RANDOM%20))

Using /dev/random Device

Linux provides the /dev/random as a device that provides random data when consumed. This random device can be used to generate random data. But the generated data is in hexadecimal format and should be formatted into decimal values. The od command can be used to format generated random data into decimal format.

$ od -A n -t d -N 1 /dev/urandom

Using shuf Command

The shuf command is used to shuffle provided list. The shuf command can be used to generate random numbers by providing the low and high limits about the list and select one of the values in a random way. In the following example, we generate a random number between “10” and “20”.

$ shuf -i 10-20 -n 1

Leave a Comment