bash zufallsbuchstaben
bash zufallsbuchstaben
Hallo Team
ich kenne den bash Zufallsgenerator für Zahlen zB für Zahlen zwischen 0 und 1:
# echo $(($RANDOM % 2))
Gibts auch eine bash Funktion für Zufalls-Buchstaben [A-Za-z] ?
Dank euch
LG root2root
ich kenne den bash Zufallsgenerator für Zahlen zB für Zahlen zwischen 0 und 1:
# echo $(($RANDOM % 2))
Gibts auch eine bash Funktion für Zufalls-Buchstaben [A-Za-z] ?
Dank euch
LG root2root
Re: bash zufallsbuchstaben
Vielleicht so etwas:read liest leerzeichengetrennte Strings ein, also die Buchstaben. Das abschliessende '' ist wichtig, weil sonst das Z nicht eingelesen wird. (Ich hab' keine Haeufigkeitsanalyse gemacht und gehe einfach mal davon aus, dass es richtig ist.)
Gruss Cae
Code: Alles auswählen
take=$(($RANDOM % 51)); i=0; echo {a..z} {A..Z} '' | while read -d\ char; do [ "$i" = "$take" ] && echo "$char"; ((i++)); done
Gruss Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
Re: bash zufallsbuchstaben
Wenn außer Bash auch coreutils erlaubt sind:
Code: Alles auswählen
tr -dc [:alpha:] </dev/urandom | head -c1
Re: bash zufallsbuchstaben
Mensch. Da gibt es doch bestimmt auch was von ... awk
Re: bash zufallsbuchstaben
AWK kann (wie die Bash auch) Zufallszahlen erzeugen und hat (wie die Bash auch) eine printf-Funktion, damit sollte man zu ASCII-Werten die entsprechenden Zeichen augeben können. Man muß aber beachten daß zwischen A-Z und a-z noch ein paar andere Zeichen liegen wenn man zufällig Groß- und Kleinbuchstaben erzeugen will (und nicht vorher eine extra Liste erstellen will, so in etwa wie in Caes Beispiel). Die tr-Variante ist wahrscheinlich am kürzesten.
Re: bash zufallsbuchstaben
Ich mache das eigentlich auch immer so ähnlich wie uname:
oder
Ist nicht ganz so ineffizient. So generiere ich auch die meisten meiner PWs.
Code: Alles auswählen
base64 /dev/urandom | tr -d '[\n-=]' | head -c [ANZAHL]
Code: Alles auswählen
base64 /dev/urandom | tr -dc '[A-z]' | head -c [ANZAHL]
rot: Moderator wanne spricht, default: User wanne spricht.
Re: bash zufallsbuchstaben
Hallo zusammen,
prima, danke für eure Antworten,
habe inzwischen selbst mal nen kleinen Zwiezeiler gebastelt...
# echo "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" >~/abc
# li=$(($RANDOM % 51 +1)); echo -n $(cut -c$li ~/abc)
etwas hemdsärmlig, aber es läuft.
LG root2root
prima, danke für eure Antworten,
habe inzwischen selbst mal nen kleinen Zwiezeiler gebastelt...
# echo "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" >~/abc
# li=$(($RANDOM % 51 +1)); echo -n $(cut -c$li ~/abc)
etwas hemdsärmlig, aber es läuft.
LG root2root
Re: bash zufallsbuchstaben
also ich bastle mir passwörter immer so:
damit hast du ein 8stelliges Passwort
Code: Alles auswählen
pw=$(dd if=/dev/urandom bs=1 count=6 2>/dev/null | openssl base64)
echo $pw
Debian-Nutzer
ZABBIX Certified Specialist
ZABBIX Certified Specialist
Re: bash zufallsbuchstaben
Zwar wurde nach Passwörtern nicht gefragt aber dafür gibt esalso ich bastle mir passwörter immer so
Code: Alles auswählen
pwgen
pwgen -n <laenge>
Das nutze ich manchmal für "geheime" Ordner auf Webservern. Ich erlaube dann nur feste Ordner und zudem Ordner, die mindestens 15 Zeichen (generiert mit pwgen -n 20) lang sind. So spare ich mir manchmal .htaccess.
Code: Alles auswählen
<DirectoryMatch "^/var/www/[a-zA-Z0-9]{15}">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</DirectoryMatch>
Re: bash zufallsbuchstaben
Besser: Lass die temporäre Datei weg, pack die Zeichen in eine Variable und pick dir dann die entsprechende Stelle raus mit:root2root hat geschrieben:Code: Alles auswählen
# echo "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" >~/abc # li=$(($RANDOM % 51 +1)); echo -n $(cut -c$li ~/abc)
Code: Alles auswählen
${string:position:length}
-
- Beiträge: 140
- Registriert: 29.01.2013 11:03:50
Re: bash zufallsbuchstaben
Oder mit bash arrays.
Ein Zeichen:
Mehrere Zeichen:
Ein Zeichen:
Code: Alles auswählen
chars=({a..z} {A..Z}); echo ${chars[$(($RANDOM % ${#chars[@]}))]}
Code: Alles auswählen
chars=({a..z} {A..Z})
for i in {1..10}; do
echo -n ${chars[$(($RANDOM % ${#chars[@]}))]};
done
Re: bash zufallsbuchstaben
$RANDOM ist sowieso total bash spezifisch in allen anderen Schells musst du dir das aus /dev/urandom holen.goeb hat geschrieben:(Wahrscheinlich Bash-spezifisch, aber du hattest ja nach Bash gefragt.)
rot: Moderator wanne spricht, default: User wanne spricht.