Based on Fredrik Wikstrom's mkpasswd utility
Description:
UniqueName is a command that generates a random and (hopefully) unique
alphanumeric string.
It's mostly useful in shell scripts, to avoid name clashes when creating pipes
and filenames.
Usage:
UniqueName <length>
The command accepts a single (optional) argument, the length of the string to
be generated.
Length should be a value between 4 and 40.
It defaults to 8 if no value was specified.
Any other argument will return the usage template.
The minimum length of 4 characters represents over 1.6 million (36*36*36*36)
possibilities and should be safe enough for its intended use.
With 8 chars you get over 2.8 trillion possibilities, and if you're really
paranoid (nuts?), use 40, that represents over...
1600000000000000000000000000000000000000000000000000000000000 possibilities!
Examples:
Suppose that each time you run a script you want to log its output to a new
file...
Execute Script >`UniqueName`.log
Perhaps within the script you want to redirect some output to other logfiles...
[Script]
Set log1 Sys`UniqueName 4`.log
Set log2 Usr`UniqueName 4`.log
SomeCommand >>$log1
SomeCommand >>$log2
SomeCommand >>$log1
etc...
You can run the script multiple times in parallel without risking overwriting
another's log file.
Likewise with named PIPEs...
[Script]
Set pre PIPE:`UniqueName`
Set post PIPE:`UniqueName`
Run Capture input=$pre output=$post
Wait 1
Run Broadcast source=$post
| |