fish-shell/doc_src/cmds/random.rst
David Adam 3a23fdf359 docs: omnibus cleanup
Includes harmonizing the display of options and arguments, standardising
terminology, using the envvar directive more broadly, adding help options to all
commands that support them, simplifying some language, and tidying up multiple
formatting issues.

string documentation is not changed.
2022-03-12 00:21:13 +08:00

69 lines
1.5 KiB
ReStructuredText

.. _cmd-random:
random - generate random number
===============================
Synopsis
--------
.. synopsis::
random
random SEED
random START END
random START STEP END
random choice [ITEMS ...]
Description
-----------
``random`` generates a pseudo-random integer from a uniform distribution. The
range (inclusive) depends on the arguments.
No arguments indicate a range of 0 to 32767 (inclusive).
If one argument is specified, the internal engine will be seeded with the
argument for future invocations of ``random`` and no output will be produced.
Two arguments indicate a range from *START* to *END* (both *START* and *END* included).
Three arguments indicate a range from *START* to *END* with a spacing of *STEP*
between possible outputs.
``random choice`` will select one random item from the succeeding arguments.
The **-h** or **--help** option displays help about using this command.
Note that seeding the engine will NOT give the same result across different
systems.
You should not consider ``random`` cryptographically secure, or even
statistically accurate.
Example
-------
The following code will count down from a random even number between 10 and 20 to 1:
::
for i in (seq (random 10 2 20) -1 1)
echo $i
end
And this will open a random picture from any of the subdirectories:
::
open (random choice **.jpg)
Or, to only get even numbers from 2 to 20::
random 2 2 20
Or odd numbers from 1 to 3::
random 1 2 3 # or 1 2 4