Bogus: '/bin/date'; ?????? wie kann ich das auf meinem localhost zum laufen bringen?

Ich habe ein cgi-script "downgeloadet" welches folgende anweisung enthällt.

$dateCmd = '/bin/date';

jetzt nehme ich mal an bzw. bin ich drauf gekommen, dass dies am localhost nicht funktioniert.

wodurch kann ich diese zeile ersetzen damit das am localhost funtioniert??????(Unter win98)

please help,...

cu

  1. Ich habe ein cgi-script "downgeloadet" welches folgende anweisung enthällt.

    $dateCmd = '/bin/date';

    jetzt nehme ich mal an bzw. bin ich drauf gekommen, dass dies am localhost nicht funktioniert.

    Am Unix/Linux localhost schon!

    wodurch kann ich diese zeile ersetzen damit das am localhost funtioniert??????(Unter win98)

    please help,...

    cu

    Dadurch, daß die 'Shellbefehl'; gesetzt sind, hast Du Schwierigkeiten unter DOS, da ein Unix-shell cmd definiert bzw. aufgerufen wird, welches offenbar im weiteren Verlauf des Scripts noch weiterverwendet werden soll, also: mit WinX ist es gerade 'neet guaat'.
    Sieht also nicht gut aus, auch wenn ich an dieser Stelle zugeben muß, daß ich mit perl+WinX kaum Erfahrung habe.

    Gibt es nicht Programme, die UNIXShell Befehle auf WinX portieren, also, daß man ls -l eingeben kann und tatsächlich den Verzeichnisinhalt angezeigt bekommt ....??
    Dann - da auch date Standard ist - mueßtest Du nur den Pfad auf die insofern neue date.exe (oder so!?) richtig setzen, nehme ich mal an und _dann_ koennte, sollte es auch gehen.
    Also letztlich eine logische Frage der Shell-Umgebung, meine ich und kann damit lediglich eine erste Einschätzung am späten Sonntag Abend abgegeben haben ....

    (Vielleicht geht es auch mit dem DOS 'date' Befehl, aber da muß man mehr perlscript sehen und ueber DOS wissen, um abschaetzen zu koennen was geht)

    CU
    Bo

    1. Ich habe ein cgi-script "downgeloadet" welches folgende anweisung enthällt.

      $dateCmd = '/bin/date';

      jetzt nehme ich mal an bzw. bin ich drauf gekommen, dass dies am localhost nicht funktioniert.

      Am Unix/Linux localhost schon!

      Wobei da aber in sehr seltenen Fällen der Pfad anders sein könnte...

      Dadurch, daß die 'Shellbefehl'; gesetzt sind, hast Du Schwierigkeiten unter DOS, da ein Unix-shell cmd definiert bzw. aufgerufen wird, welches offenbar im weiteren Verlauf des Scripts noch weiterverwendet werden soll, also: mit WinX ist es gerade 'neet guaat'.

      Stimmt.
      Ich finde dieses "/bin/date" sowieso sehr unglücklich, denn ein localtime(time) ist viel zuverlässiger, schneller und portabler.
      Versuch' doch mal das Programm auf time umzuprogrammieren, zur Not kannst du's mir ja mal zuschicken...

      Gibt es nicht Programme, die UNIXShell Befehle auf WinX portieren, also, daß man ls -l eingeben kann und tatsächlich den Verzeichnisinhalt angezeigt bekommt ....??

      Ja, das gibt's so'n paar Tools...

      Dann - da auch date Standard ist - mueßtest Du nur den Pfad auf die insofern neue date.exe (oder so!?) richtig setzen, nehme ich mal an und _dann_ koennte, sollte es auch gehen.

      Vorausgesetzt, die Ausgabe stimmt dann auch 100% mit der Unix-Variante überein...

      (Vielleicht geht es auch mit dem DOS 'date' Befehl, aber da muß man mehr perlscript sehen und ueber DOS wissen, um abschaetzen zu koennen was geht)

      Das wird nix, weil das DOS-date auf 'ne Eingabe vom neuen Datum wartet.

      Ciao,
      Mirko

      1. Ich finde dieses "/bin/date" sowieso sehr unglücklich, denn ein localtime(time) ist viel zuverlässiger, schneller und portabler.
        Versuch' doch mal das Programm auf time umzuprogrammieren, zur Not kannst du's mir ja mal zuschicken...

        chop ($jDate = $dateCmd +"%j");
          $HITBAK = "$bakDir/hit$jDate.bak";

        }
        chop ($dayStamp = $dateCmd +"%e"); $dayStamp =~ s/\s*//g;
        chop ($hourStamp = $dateCmd +"%H");
        chop ($timeStamp = $dateCmd +"%a %D %H%M%Z");
        chop ($dateStamp = $dateCmd +"%Y%m%d");
        $yearStamp = substr ($dateStamp,0,4);
        $monthStamp = substr ($dateStamp,4,2);
        $month = $monthStamp +0;

        $HITCFG = "$hitmatDir/hit.cfg";
        $HITCNT = "$hitmatDir/hit.cnt";
        $HITDAT = "$hitmatDir/hit$month.dat";
        -----------------------

        dass ist der teil, der das skalar §dateCmd weiterverwendet. irgendwelche ideen?

        1. Ich finde dieses "/bin/date" sowieso sehr unglücklich, denn ein localtime(time) ist viel zuverlässiger, schneller und portabler.
          Versuch' doch mal das Programm auf time umzuprogrammieren, zur Not kannst du's mir ja mal zuschicken...

          chop ($jDate = $dateCmd +"%j");
            $HITBAK = "$bakDir/hit$jDate.bak";

          }
          chop ($dayStamp = $dateCmd +"%e"); $dayStamp =~ s/\s*//g;
          chop ($hourStamp = $dateCmd +"%H");
          chop ($timeStamp = $dateCmd +"%a %D %H%M%Z");
          chop ($dateStamp = $dateCmd +"%Y%m%d");
          $yearStamp = substr ($dateStamp,0,4);
          $monthStamp = substr ($dateStamp,4,2);
          $month = $monthStamp +0;

          $HITCFG = "$hitmatDir/hit.cfg";
          $HITCNT = "$hitmatDir/hit.cnt";
          $HITDAT = "$hitmatDir/hit$month.dat";

          dass ist der teil, der das skalar §dateCmd weiterverwendet. irgendwelche ideen?

          Ojeoje... da ging aber einer nach dem Motto "Warum einfach, wenn's auch kompliziert geht?"...

          ($sec,$min,$hourStamp,$dayStamp,$monthStamp,$yearStamp,$wday,$yday,$isdst) = localtime(time);
          $monthStamp++;
          $month=$monthStamp;
          $yearStamp+=1900;
          $dateStamp = sprintf("%04d%02d%02d",$yearStamp,$monthStamp,$dayStamp);
          $timeStamp = localtime(time);

          ($timeStamp bringt evtl. etwas andere Werte als das date-Kommando, aber das sollte in diesem Fall nicht viel ausmachen).
          Ein kleiner Tip zusätzlich: $ENV{"TZ"} = "MET"; ist durchaus sinnvoll... :-)

          Ciao,
          Mirko