staging.inyokaproject.org

Für diese Funktion musst du eingeloggt sein.

bash - Dateien öffnen und ändern - Skript

Status: Ungelöst | Ubuntu-Version: Ubuntu 6.06 (Dapper Drake)
Antworten |

gummibaerchen

Anmeldungsdatum:
23. März 2006

Beiträge: 556

Hallo,

diese kleinen Skripts sind wirklich hilfreich.

Jetzt wollte ich gerade etwas automatisiertes bauen, wozu es gleich nen Webinterface gibt. Das leichteste wäre doch glaube ich, wenn ich eine Zahl in eine Datei schreibe und diese wieder mit PHP auslese oder?

Meine Frage ist jetzt, wie kann ich etwas in eine Datei schreiben, dann die Datei einlesen, die Zahl um 1 erhöhen, Datei schließen?

Danke, gummibaerchen

comm_a_nder

Avatar von comm_a_nder

Anmeldungsdatum:
5. Februar 2006

Beiträge: 2533

etwas in eine Datei schreiben:

 echo 1 > /tmp/zaehler.txt

Zahl in der Datei erhöhen:

echo $(expr 1 + $(cat /tmp/zaehler.txt)) > /tmp/zaehler.txt
cat /tmp/zaehler.txt

mlbel

Anmeldungsdatum:
9. November 2005

Beiträge: Zähle...

Mal was ganz anderes, wieso machst Du die Erhöhung nicht auch einfach mit PHP?

gummibaerchen

(Themenstarter)

Anmeldungsdatum:
23. März 2006

Beiträge: 556

mlbel hat geschrieben:

Mal was ganz anderes, wieso machst Du die Erhöhung nicht auch einfach mit PHP?

Also das läuft ja so ab.
Das Prog läuft in Endlosschleife, und wenn ich mal irgendwann schnell den Stand abfragen will, dann rufe ich das PHP-File auf.

Oder meinst du aus Bash ein PHP-Prog starten, was das macht? Wär auch ne Möglichkeit.

mlbel

Anmeldungsdatum:
9. November 2005

Beiträge: 118

gummibaerchen hat geschrieben:

Oder meinst du aus Bash ein PHP-Prog starten, was das macht? Wär auch ne Möglichkeit.

Nein, wusste nur nicht wofür Du das benötigst, dachte Du wolltest einen Webcounter basteln oder so... 😀

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17432

Kürzer noch:

 echo $((1+ $(<zaehler.txt))) > zaehler.txt 


Und zum beobachten:

 echo $((1+ $(<zaehler.txt))) | tee zaehler.txt

gummibaerchen

(Themenstarter)

Anmeldungsdatum:
23. März 2006

Beiträge: 556

Danke,

user unknown hat geschrieben:

Und zum beobachten:

 echo $((1+ $(<zaehler.txt))) | tee zaehler.txt

Aber was macht _das_ jetzt? Erstmal gibt es zeahler.txt um 1 erhöht aus, aber was ist "tee"?

Wenn ich tee auf eine Datei mache, ich die danach immer leer...

Dee Team-Icon

Avatar von Dee

Anmeldungsdatum:
9. Februar 2006

Beiträge: 20087

"man tee" hätte es erklärt:

tee - Von Standardeingabe lesen und in Standardausgabe und Dateien schreiben

Sprich, das was vorher mit echo ausgegeben wird, wird an die Datei "zaehler.txt" weitergeleitet.

Gruß, Dee

gummibaerchen

(Themenstarter)

Anmeldungsdatum:
23. März 2006

Beiträge: 556

Aber dann sind die beiden zeilen doch indentisch in dem Ergebnis, oder?

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17432

Du kannst das 10 mal hintereinander eingeben, und zusehen, wie der Zähler hochgezählt wird.
Der einzige Unterschied zur anderen Zeile ist, daß es auch angezeigt wird - wenn das die Frage war.

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

Dee hat geschrieben:

"man tee" hätte es erklärt:

tee - Von Standardeingabe lesen und in Standardausgabe und Dateien schreiben

Sprich, das was vorher mit echo ausgegeben wird, wird an die Datei "zaehler.txt" weitergeleitet.

Gruß, Dee

Dann hast du den Text aber nicht richtig gelesen. Da steht das es an STDOUT && in eine Datei geschrieben wird.

So wie du es beschreibst wäre es vergleichbar mit ">".

Das letzte verändert aber STDOUT z.B. auf eine Datei, und du siehst auf dem Bildschirm nichts mehr. Bei Programmen die länger laufen merkt man besser den unterschied.

"nmap -sS -vvv 192.168.1.0/24 > scan.txt"

Das speichert alles was du normalerweise sehen würdest in scan.txt. Du selber siehst aber nichts mehr auf dem Bildschirm.

"nmap -sS -vvv 192.168.1.0/24 | tee scan.txt"

Du siehst die Ausgabe auf dem Bildschirm, und zusätzlich wird alles in die Datei scan.txt geschrieben. Hier wird STDOUT nicht umgeleitet. (Naja kann man sehen wie man will)

Dee Team-Icon

Avatar von Dee

Anmeldungsdatum:
9. Februar 2006

Beiträge: 20087

Sid Burn hat geschrieben:

Dann hast du den Text aber nicht richtig gelesen. Da steht das es an STDOUT && in eine Datei geschrieben wird.

Hups, sorry... mein Fehler. Das meinte ich aber. 😉

Gruß, Dee

Antworten |