Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[solved] Zufallswert aus nur 2 Möglichkeiten

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
goodski
Newbie
Newbie
Beiträge: 34
Registriert: 12. Apr 2005, 09:28

[solved] Zufallswert aus nur 2 Möglichkeiten

Beitrag von goodski »

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??
Zuletzt geändert von goodski am 26. Aug 2008, 13:28, insgesamt 1-mal geändert.
Im Prinzip ist alles Gleich,
nur anders !!!!
abgdf
Guru
Guru
Beiträge: 3403
Registriert: 13. Apr 2004, 21:15

Re: Zufallswert aus nur 2 Möglichkeiten

Beitrag von abgdf »

Null Problemo:

Code: Alles auswählen

perl -e '@a = ("C", "D"); print $a[int(rand(2))]'
:wink: Gruß
goodski
Newbie
Newbie
Beiträge: 34
Registriert: 12. Apr 2005, 09:28

Re: Zufallswert aus nur 2 Möglichkeiten

Beitrag von goodski »

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...
Im Prinzip ist alles Gleich,
nur anders !!!!
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Re: Zufallswert aus nur 2 Möglichkeiten

Beitrag von regexer »

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
goodski
Newbie
Newbie
Beiträge: 34
Registriert: 12. Apr 2005, 09:28

Re: Zufallswert aus nur 2 Möglichkeiten

Beitrag von goodski »

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.
Im Prinzip ist alles Gleich,
nur anders !!!!
Benutzeravatar
regexer
Advanced Hacker
Advanced Hacker
Beiträge: 1005
Registriert: 3. Dez 2004, 09:29
Wohnort: $_

Re: Zufallswert aus nur 2 Möglichkeiten

Beitrag von regexer »

notoxp hat geschrieben:Vorschlag 2: auf gerade/ungerade abfragen
Ich meinte das ungefähr so:

Code: Alles auswählen

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: Alles auswählen

CD=$(perl -e '...')
echo $CD
goodski
Newbie
Newbie
Beiträge: 34
Registriert: 12. Apr 2005, 09:28

Re: Zufallswert aus nur 2 Möglichkeiten

Beitrag von goodski »

notoxp hat geschrieben:
notoxp hat geschrieben:Vorschlag 2: auf gerade/ungerade abfragen
Ich meinte das ungefähr so:

Code: Alles auswählen

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: Alles auswählen

CD=$(perl -e '...')
echo $CD
Deine 2. Variante gefällt doch gleich noch bissel besser :) hab das eben noch mal umgestellt.
Im Prinzip ist alles Gleich,
nur anders !!!!
Antworten