Kleine Bash Script frage

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
frank123456
Beiträge: 29
Registriert: 21.01.2008 14:09:14

Kleine Bash Script frage

Beitrag von frank123456 » 02.07.2008 12:17:21

Moin Leute, nur mal ne kleine Frage.

Ich schreibe hier ein kleines Programm in dem ich unter anderem eine Datei erstellen lasse.

Nach dem ich sie erstellen lasse, wollte ich den namen der Datei sofort in die Variable $file schreiben lassen.
Nur irgendwie bekomme ich das nicht hin...

dafür habe ich momentan nur:

file=text.$(date +%d-%m-%Y)_§(date +%T)

später will ich dann was da rein schreiben

find /home/ -nouser >> $file

Dann hatte ich aber 2 Dateien, warum ist mir schon klar. Wenn ich $file aufrufe, erstellt er eine neue datei die halt ne andere Zeit hat^^

Ich würde dann gerne in etwa so das lösen touch text.$(date +%d-%m-%Y)_§(date +%T) | name in Variable $file

Kann mir jemand sagen wie das geht?

Danke!

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: Kleine Bash Script frage

Beitrag von finupsen » 02.07.2008 12:44:57

hallo,

Code: Alles auswählen

FILE=text.`date +%d-%m-%Y_%T`;touch $FILE
BTW: Das format ist völlig unbrauchbar... das weisst du, oder ?
Niemand hat vor eine zentrale Datensammelbehörde aufzubauen. Es handelt sich vielmehr um dezentrale IT-Systeme die miteinander vernetzt werden.
... und Wasser ist naß.

frank123456
Beiträge: 29
Registriert: 21.01.2008 14:09:14

Re: Kleine Bash Script frage

Beitrag von frank123456 » 02.07.2008 14:34:37

ich versteh nicht ganz warum, hab das auch schon anders lösen können.

Code: Alles auswählen

file=nouser.$(date +%d-%m-%Y_%T)
dann steht das richtige da drin

Nun hab ich das problem, das ich mit

Code: Alles auswählen

rows=cat $file | wc -l
die anzahl der Zeilen in $rows schreibe.

Wenn ich das per echo ausgebe:

Code: Alles auswählen

echo $rows " Zeilen sind vorhanden."
Dann steht da
8
Zeilen sind vorhanden.
Ich müsste da den Zeilenumbruch raus bekommen, kann mir da einer sagen, wie ich den raus bekomme und wo der überhaupt her kommt?

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Kleine Bash Script frage

Beitrag von Duff » 02.07.2008 15:28:01

Meinst du Zeilenumbruch oder leere Zeilen?

leere Zeilen=sed -e '/^$/d' file
Oh, yeah!

Benutzeravatar
detix
Beiträge: 1743
Registriert: 07.02.2007 18:51:28
Wohnort: MK

Re: Kleine Bash Script frage

Beitrag von detix » 02.07.2008 18:22:27

frank123456 hat geschrieben:rows=cat $file | wc -l
Diese Syntax ist falsch, entweder so:

Code: Alles auswählen

rows=`cat $file | wc -l`
oder so:

Code: Alles auswählen

rows=$(cat $file | wc -l)
dann klappts auch mit echo...
Gruß an alle Debianer, und immer daran denken:
Macht ohne Haftung funktioniert nicht!

Antworten