Zufälligen String mit einer definierten Länge erzeugen

Aus ConfigWiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
 
(Eine dazwischenliegende Version von einem Benutzer wird nicht angezeigt)
Zeile 10: Zeile 10:
 
   
 
   
 
  #
 
  #
  # function for random string
+
  # function to generate the random string
 
  #
 
  #
 
  function randstrg () {
 
  function randstrg () {
Zeile 26: Zeile 26:
 
   
 
   
 
  #
 
  #
  # ERROR-handling if parameter 1 is set, it should be not to big and a integer value
+
  # ERROR-handling/checking
 +
# if parameter 1 is set, it should be not to big and a integer value
 
  #
 
  #
 
  if [ ${1} ]; then
 
  if [ ${1} ]; then
Zeile 38: Zeile 39:
 
   
 
   
 
  #
 
  #
  # GO
+
  # finally start after successful ERROR-handling/checking
 
  #
 
  #
 
  strg= randstrg ${1}
 
  strg= randstrg ${1}
 
  echo $strg
 
  echo $strg
 
</source>
 
</source>

Aktuelle Version vom 20. Dezember 2011, 10:44 Uhr

  • Kann z.B. zum erzeugen eines neuen Passwortes genutzt werden.
  • Das Bsp.-script prüft:
    • ob ein Parameter für die Länge des zu erzeugenden Strings übergeben wird,
    • ob dieser ein Integer ist
    • und dieser kleiner als 1000000 ist (dient gegen Rechnerstress).
  • Die Standardlänge des Strings ist hier 10 Zeichen.

<source lang="bash">

#!/bin/bash

#
# function to generate the random string
#
function randstrg () {
        local strgLength
        local strg
        if [ $1 ]; then
                strgLength=$1
        else
                strgLength=10
        fi
 
        strg=</dev/urandom tr -dc A-Za-z0-9 | head -c $strgLength
        return $strg
}

#
# ERROR-handling/checking
# if parameter 1 is set, it should be not to big and a integer value
#
if [ ${1} ]; then
    if [ ! $(echo "${1}" | grep -E "^[0-9]+$") ] || [ "${1}" -gt 1000000 ]; then
       echo 'wrong 1. parameter ( Must be an INTEGER <= 1000000! )'
       echo 'usage:'
       echo "${0} [ INTEGER ]"
       exit
    fi
fi

#
# finally start after successful ERROR-handling/checking
#
strg= randstrg ${1}
echo $strg

</source>

Meine Werkzeuge