• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[solved] Zufallswert aus nur 2 Möglichkeiten

goodski

Newbie
HI,

folgendes hätte ich gerne via skript gelöst... jedoch habe ich absolut keine idee wie ich das anstellen soll....
Vieleicht ja jemand von euch....
derzeit habe ich u.s. stehende schleife...

......
for ((b="1";b<="$anz_umsatz";b+=1)); do

echo ":61:08"$bu_datum"C"$RANDOM",NCOMNONREF//97171/018"
echo "......"
ect.....

done

soweit so gut.

an der stelle wo derzeit das C (o.s. fett gedruckt) steht würde ich gerne einen zufallswert haben. dieser soll aber nur aus "C" oder "D" bestehen.

Kann mir jemand einen Tip geben wie man so entwas lösen kann??
 
OP
G

goodski

Newbie
sorry hatte vergessen zu erwähnen das es sich hierbei um #!/bin/bash handelt.

die perl zeile funzt ja aber ich habe keine Ahung wie ich das noch da in die Zeile reinbringen kann...
 

regexer

Advanced Hacker
Laut man bash kann $RANDOM Werte zwischen 0 und 32767 annehmen.

Vorschlag 1: wenn kleiner als 16384 --> "C", sonst "D"
Vorschlag 2: auf gerade/ungerade abfragen
 
OP
G

goodski

Newbie
thx

ich habe es jetzt so gelöst.

for ((b="1";b<="$anz_umsatz";b+=1)); do
echo -n ":61:08"$bu_datum""$bu_datum""
perl -e '@a = ("C", "D"); print $a[int(rand(2))]'
echo ""$RANDOM",NCOMNONREF//97171/018"
ect.....

done

echo -n unterbindet die newline dadurch wird das C bzw D hinten angehängt. und die Zeile korrekt ausgegeben.
 

regexer

Advanced Hacker
notoxp schrieb:
Vorschlag 2: auf gerade/ungerade abfragen
Ich meinte das ungefähr so:
Code:
echo $(($RANDOM%2))
... da kommt immer 0 oder 1 heraus. Das könnte man dann mit if, tr oder ähnlichem in "C" und "D" umwandeln.

Und wenn man perl anwerfen will und die Ausgabe in eine bash-Umgebungsvariable speichern will...
Code:
CD=$(perl -e '...')
echo $CD
 
OP
G

goodski

Newbie
notoxp schrieb:
notoxp schrieb:
Vorschlag 2: auf gerade/ungerade abfragen
Ich meinte das ungefähr so:
Code:
echo $(($RANDOM%2))
... da kommt immer 0 oder 1 heraus. Das könnte man dann mit if, tr oder ähnlichem in "C" und "D" umwandeln.

Und wenn man perl anwerfen will und die Ausgabe in eine bash-Umgebungsvariable speichern will...
Code:
CD=$(perl -e '...')
echo $CD

Deine 2. Variante gefällt doch gleich noch bissel besser :) hab das eben noch mal umgestellt.
 
Oben