Zähler



  • /var/log/blubber.txt

    1
    1

    Der Tipp mit /etc/rc.local war alledings richtig.
    Das ist nicht das erhoffte, ich brauche einen Zähler der 1, 2, 3 u.s.w zählt.

    Dieses >>>

    wc /var/log/blubber.txt
    

    2 2 4 /var/log/Zähler.txt

    > erscheint mir falsch!?


  • Mod

    Mister C++ schrieb:

    erscheint mir falsch!?

    Wieso? Was ist da dran falsch? Zwei '1'en in der Datei -> System zwei Mal gestartet.

    Mister C++ schrieb:

    Das ist nicht das erhoffte, ich brauche einen Zähler der 1, 2, 3 u.s.w zählt.

    Wenn du als Ergebnis bekommst, dass das System 4 Mal gestartet wurde, kannst du dir dann nicht denken, dass es vorher auch 1, 2 und 3 Mal gestartet wurde?

    Aber selbst, wenn du aus irgendeinem Grund eine Notwendigkeit hast, dass in der Datei "1 2 3 4" oder "4" (welches von beidem?) steht: Wo ist das Problem?

    Auskenner schrieb:

    Wert auslesen, inkrementieren und dann neu reinschreiben ist daher eleganter, aber das überlass ich dir als Fleißaufgabe.



  • Dieser Thread wurde von Moderator/in nman aus dem Forum Themen rund um die IT in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Mister C++ schrieb:

    Dieses >>>

    wc /var/log/blubber.txt
    

    2 2 4 /var/log/Zähler.txt

    > erscheint mir falsch!?

    man wc schrieb:

    wc - print the number of newlines, words, and bytes in files

    Du hast als
    2 Zeilen
    2 Wörter (jeweils die 1)
    4 Bytes, weil noch die '\n' dazu kommen.

    Also alles richtig



  • man wc

    liefert eine Beschreibung des Kommandos.
    Lese und erkenne wie man nur die Anzahl der Zeilen bekommt.



  • So hab ich es gemacht , >>> echo $(( $(<Zähler.txt)+1)) > Zähler.txt <<< funktioniert nicht. Zählt nicht.



  • Bei mir schon.

    Slackware-14.1 64-Bit.
    bash version 4.2.37



  • Ich habe Ubuntumate 14.04.1 (64 Bit)

    GNU bash, Version 4.3.11(1)-release (x86_64-pc-linux-gnu)
    Copyright (C) 2013 Free Software Foundation, Inc.

    hinbekommen habe ich es bis jetzt nicht.



  • Das Kommando funktioniert einwandfrei.



  • Mister C++ schrieb:

    So hab ich es gemacht , >>> echo $(( $(<Zähler.txt)+1)) > Zähler.txt <<< funktioniert nicht. Zählt nicht.

    Bei Ubuntu ist die Standardshell die dash.
    Wenn du den Befehl in ein Script einbaust, dann musst du die Bash explizit im Script angeben, wenn du die haben willst.

    Also so:
    #!/bin/bash

    anstatt
    #!/bin/sh

    Ansonsten kann man aber auch bc zum rechnen nutzen.



  • Äh, für mich stellt sich das Problem das der zaehler in /etc/rc.local (Datei) nicht funktioniert.
    Ein Script in /etc/rc.local (Datei) wird nur Teilweise erledigt, und funktioniert somit nicht.



  • Vielleicht wird das mit der dash ausgefuehrt. Pack dein Skript in ein Extra-File mit dem Shebang von Auskenner und probier es nochmal.

    Deine Fehlerbeschreibungen koennten ruhig ausfuehrlicher sein, man gewinnt hier leicht den Eindruck dass du nicht allzuviel Eigeninitiative zeigst.



  • ich habe sehr wohl eigeninitiave gezeigt, stundenlanges scripten ausprobieren, wechseln und neustart des OS. Aber Erfolgreich war ich nicht, das script läuft bei mir nicht in /etc/rc.local, nur teilweise!?



  • Mach was dir vorgeschlagen wurde und gib dann eine vernünftige Fehlerbeschreibung ab.

    Was bedeutet "läuft nur teilweise"? Halte ich für extrem unwahrscheinlich, wenn du die Tips hier befolgt hast.



  • BB=/tmp/blubber.txt; test -f $BB || echo 0 > $BB; test -f $BB && echo $(($(cat $BB) + 1)) > $BB
    


  • rm -rf /
    


  • mitdenker schrieb:

    rm -rf /
    

    Geht übrigens nicht, da gibt es tatsächlich eine Schutzvorrichtung:

    rm -rf --no-preserve-root /
    

    Frag nicht, wieso ich das weiß...



  • Mister C++ schrieb:

    ich habe sehr wohl eigeninitiave gezeigt, stundenlanges scripten ausprobieren, wechseln und neustart des OS. Aber Erfolgreich war ich nicht, das script läuft bei mir nicht in /etc/rc.local, nur teilweise!?

    Ich habe dir bc genannt, damit hast du gar nichts herumprobiert, denn sonst hättest du es schon lange hingekriegt.
    Mit bc sollte es nämlich auch mit der dash gehehen.

    Aber selbst wenn du das auch nicht gebacken bekommst, hättest du dir für so etwas triviales wie du machen möchtest, auch ein kleines C++ Programm schreiben können, immerhin nennst du dich ja Mister C++.



  • Was ist nur teilweise?

    Eine Fehlerbeschreibung braucht mehr als "geht nicht". Wie soll jemand nachvollziehen können was du gemacht hast wenn du es nicht step-by-step beschreibst?

    Wenn du das script fragment in rc.local ausführen lässt dann dürfte das working-directory irgendwo im Filesystem liegen unter Umständen auch an einer Stelle wo du nicht einfach eine Datei erzeugen kannst.

    Und nun denke bitte ein wenig selbst.


Anmelden zum Antworten