Ich hätte da noch ne Frage. Kann man die beiden ausgegebenen Zahlenreihen eigentlich auch irgendwie vergleichen?
Also nach dem Muster: x Zahlen stimmen überein?
Ich hätte da noch ne Frage. Kann man die beiden ausgegebenen Zahlenreihen eigentlich auch irgendwie vergleichen?
Also nach dem Muster: x Zahlen stimmen überein?
Klar geht das. Die Frage ist nur: Was möchtest du genau mit was vergleichen?
Klar geht das. Die Frage ist nur: Was möchtest du genau mit was vergleichen?
Also. Die erste Zahlenreihe ist eine zufällig erzeugte Zahlenreihe aus 6 Ziffern von 1-49. Die zweite Zahlenreihe ist eine Zahlenreihe, welche aus 6 Formularfeldern ausgelesen wird, die der User auf der Seite test.html befüllt.
Nun soll ermittelt werden, wie viele Zahlen der unteren Reihe mit der oberen Reihe übereinstimmen. Quasi Lotto.
Gerade aus Langeweile beim essen was zusammengebastelt und nicht getestet, sollte so in der Art aber als Lösungsansatz taugen:
<?php
$randzahlen=array();
$identische=array();
for($i=0;$i<=5;$i++)
{
$randzahlen[]=rand(1,48);
}
for(i=0;$i<=5;$i++)
{
foreach($randzahlen as $randzahl)
{
$userzahl=htmlspecialchars($_POST["zahl"][$i]);
if(is_numeric($userzahl))
{
if($userzahl==$randzahl)
{
$identische[]=$userzahl;
}
}
else
{
echo '<p>Alle Felder müssen Zahlen beinhalten!</p>';
}
}
}
if($identcount>0)
{
echo '<p>Glückwunsch! Folgende Treffer waren bei den Tipps dabei:</p>';
echo '<ul>';
foreach($identische as $treffer)
{
echo ' <li>'.$treffer.'</li>';
}
echo '</ul>';
}
else
{
echo '<p>Leider haben Sie mit Ihren Tipps keine Treffer gehabt.</p>';
}
echo '<p>Folgende Zahlen haben Sie getippt:</p>';
echo '<ul>';
for(i=0;$i<=5;$i++)
{
echo '<li>'.htmlspecialchars($_POST["zahl"][$i]).'</li>';
}
echo '</ul>';
?>
Alles anzeigen
Schnee für die Konsole, geil
Backupskript:
#!/bin/bash
DATE=$(date +"%m-%Y")
HOST=$(hostname)
NAME="Backup"
FULLNAME=$NAME-$HOST-$DATE
SOURCE=$@
TARGET=/save/$FULLNAME/
REMOTETARGET=/data/Backup\ Clients/$HOST/$FULLNAME/
LOG=/save/logs/$FULLNAME.log
TMPLOG=/save/logs/$FULLNAME.log.tmp
if [ -z $@ ]; then
echo "Bitte Quelle als Parameter angeben"
exit 0
fi
if [ -e $TARGET ]; then
rsync -avu $SOURCE $TARGET |tee >> $TMPLOG
else
mkdir $TARGET
rsync -avu $SOURCE $TARGET |tee >> $TMPLOG
fi
/usr/bin/Server
if [ $?=0 ]; then
rsync -avu $SOURCE $REMOTETARGET |tee >> $TMPLOG
else
echo "Spacecube nicht erreichbar" |tee >> $TMPLOG
fi
cat $TMPLOG >> $LOG
rm $TMPLOG
Alles anzeigen
Ausgabe
root@phoenix:/home/tobias/Desktop# Backup /home/tobias/Downloads/
spacecube ist nicht erreichbar
rsync: link_stat "/data/Backup" failed: No such file or directory (2)
rsync: mkdir "/home/tobias/Desktop/Clients/phoenix/Backup-phoenix-12-2013" failed: No such file or directory (2)
rsync error: error in file IO (code 11) at main.c(674) [Receiver=3.1.0]
root@phoenix:/home/tobias/Desktop#
#!/bin/bash
DEST="/data/save/Backup Clients/$SYS[$*]/Monatsbackup/Backup-$(date-%m-%Y)"
SYS=("phoenix" "voyager" "appletree")
SOURCE="$SYS:/save"
if [ !-e "$DEST" ]; then
mkdir "$DEST"
fi
for $SYS[$*] ; do
mount $SYS:/save /tmp
rsync -avu $SOURCE $DEST
unount /tmp
done
Alles anzeigen
Kann mal jemand das Skript überprüfen?
gist.github.com
Schickes und praktisches Script!
Kleiner Verbesserungsvorschlag noch: Würde jedoch definitiv was anderes als /tmp als Mountpoint nehmen, da sonst eventuell anfallende temporäre Dateien auf dem NFS landen. Dafür bietet sich doch /mnt ganz gut an. Würde mir nen /mnt/nfs machen und dann dort jeweils hinmounten.
Kann mal jemand das Skript überprüfen?
DEST="/data/save/Backup Clients/$SYS[$*]/Monatsbackup/Backup-$(date-%m-%Y)"
# ...
rsync -avu $SOURCE $DEST
rsync: link_stat "/data/Backup" failed: No such file or directory (2)
Erste Regel beim Umgang mit Dateinamen (mit Leerzeichen) in Shellskripten: Du. Brauchst. Mehr. Anführungszeichen.
Zitatmkdir "/home/tobias/Desktop/Clients/phoenix/Backup-phoenix-12-2013" failed: No such file or directory
Du brauchst den -p-Parameter für mkdir, um rekursiv Verzeichnisstrukturen zu erstellen.
Ich weiß nicht vollständig, was das darstellen soll; wenn du allerdings indirekte Variablenersetzung im Sinn hast, ist das der falsche Weg. $SYS wird in beiden Fällen nur einmalig durch nichts bzw. den ersten Wert im Array ersetzt. Schiebs im einfachsten Fall in deine Schleife und ersetze $SYS durch $host.
Außerdem die üblichen kleinen Tippfehler:
Zitat$(date [b]+%m-%Y[/b])"u[b]m[/b]ount /mnt/nfs
10 PRINT ""
20 PRINT "DISKETTEN-FORMATIERUNGSPROGRAMM"
30 PRINT ""
40 PRINT "FORMATIERE DISKETTE IN LAUFWERK 8"
50 OPEN 1,8,15,"N:LEER,00":CLOSE 1
60 PRINT ""
70 DIRECTORY
80 PRINT ""
90 INPUT "ZUM NEUSTART TASTE DRUECKEN, ABBRECHEN MIT N"; A$
100 IF A$="N" THEN GOTO 120
110 GOTO 10
120 PRINT "ENDE"
Alles anzeigen
Unscheinbar, absolut nicht perfekt und für die Meisten total unnütze. Aber wenn man mal eben um die 100 doppelseitige Disketten formatieren will, will man nicht immer alle Befehle einzeln eintippern. Funzt am C128 mit 'nem 1541-II problemlos - mit dem 1570 gibts seltsamerweise ab und an Probleme. Wird nur das Inhaltsverzeichnis gelesen, aber nix formatiert vorher. Gelegentlich gibts auch mal eine Fehleranzeige durch die Laufwerks-LED.
Schonmal mit N0:NAME,ID probiert?
Was soll das "N0:" statt "N:" bewirken?
Was soll das "N0:" statt "N:" bewirken?
Bei Multi-Laufwerken Laufwerk #0, vielleicht umschifft es hier aber einen Bug im DOS.
Achso, du meinst wegen dem Problemchen, was das 1570 ab und an hat?
Ich habs mittlerweile ja alles fertig - mit dem 1541-II. War mir sogar lieber, dass es etwas langsamer ging. Mit dem 1570 bin ich ja nicht mal dazu gekommen, die Etiketten abzufriemeln, so schnell war das mit einer Diskette fertig
Mein zusammengestackoverflowter Erguss der letzten Stunde: Passworteingabe für Batch
REM defensively test for powershell, fall back to echoing solution
powershell -? >nul 2>&1 && (
powershell -Command "$pword = read-host \"Password\" -AsSecureString ; $BSTR=[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pword) ; [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)" > .tmp.txt & set /p pwd=<.tmp.txt & del .tmp.txt
) || (
echo WARNING: POWERSHELL NOT FOUND, FALLBACK WILL ECHO YOUR INPUT!
SET /P pwd=Password:
cls
)
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!