Hallo Leute! Ich benoetige Hilfe mit Shell Scripts. Hier ist mein Ziel: Ein shell script generiert einen Dateinamen abhaengig von Uhrzeit und Konsole, auf dem das script ausgefuehrt wird. Damit werden einzigartige und ueberschaubare Dateinamen generiert. Soviel weiss ich bereits: Mit date kann ich das Datum anzeigen. Mit tty kann ich sehen, wo ich eingeloggt bin. Die Dateinamen sollen dieses Format haben: Konsole-JahrMonatTagStundeMinuteSekunde z.B. pts1-200202081707 Fuer "date" ist dieses Format kein Problem. Befehl: date +"%Y%m%d%T" "tty" gibt aber z.B. /dev/pts/0 aus. Hier muss also zusaetzlich noch das Output formatiert werden. Die "\" sowie das "dev" sollen raus! Ich kann mit > bzw. >> die Outputs in eine Datei schreiben. Wie komme ich von hier jetzt zur Formatierung des Outputs? Vielleicht kann ich ja das Output von "date" als Variable VAR1 und das formatierte(!) Output von "tty" als Variable VAR2 nehmen, und dann mit "echo -n > $VAR1$VAR2" die Datei erzeugen? Wie kann ich aber diese Variablen zuordnen? Vielen Dank fuer Eure Hilfe! Jeder Tipp ist nuetzlich!!! :-) Gruesse aus Berlin Daniel
Moin, From: "Daniel Geske" Friday, February 08, 2002 5:16 PM
Ich benoetige Hilfe mit Shell Scripts.
Hier ist mein Ziel: Ein shell script generiert einen Dateinamen abhaengig von Uhrzeit und Konsole, auf dem das script ausgefuehrt wird. Damit werden einzigartige und ueberschaubare Dateinamen generiert.
Soviel weiss ich bereits: Mit date kann ich das Datum anzeigen. Mit tty kann ich sehen, wo ich eingeloggt bin.
Die Dateinamen sollen dieses Format haben: Konsole-JahrMonatTagStundeMinuteSekunde z.B. pts1-200202081707
Fuer "date" ist dieses Format kein Problem. Befehl: date +"%Y%m%d%T"
"tty" gibt aber z.B. /dev/pts/0 aus. Hier muss also zusaetzlich noch das Output formatiert werden. Die "\" sowie das "dev" sollen raus!
Ich kann mit > bzw. >> die Outputs in eine Datei schreiben. Wie komme ich von hier jetzt zur Formatierung des Outputs? Vielleicht kann ich ja das Output von "date" als Variable VAR1 und das formatierte(!) Output von "tty" als Variable VAR2 nehmen, und dann mit "echo -n > $VAR1$VAR2" die Datei erzeugen? Wie kann ich aber diese Variablen zuordnen? also ich habe ja auch nicht viel Ahnung von Shell-Skripten, aber ich habe vielleicht einen Ansatz: Du kannst die Ausgabe von tty doch bestimmt mit cut zurechtstutzen. Also in der Art: VAR1=`tty | cut...` Genaueres sagt Dir man cut. Ich würde es Dir genauer sagen, wenn ich es wüßte oder im Moment zurgriff zu Linux hätte :-) Ich hoffe es Hilft Dir. Es kann aber auch sein, daß ich totel schief liege!
Gruß Thilo
Hi, On Friday, February 08, 2002 at 17:16:35, Daniel Geske wrote:
Ich benoetige Hilfe mit Shell Scripts.
Hier ist mein Ziel: Ein shell script generiert einen Dateinamen abhaengig von Uhrzeit und > Konsole, auf dem das script ausgefuehrt wird. Damit werden einzigartige und ueberschaubare Dateinamen generiert.
Soviel weiss ich bereits: Mit date kann ich das Datum anzeigen. Mit tty kann ich sehen, wo ich eingeloggt bin.
Die Dateinamen sollen dieses Format haben: Konsole-JahrMonatTagStundeMinuteSekunde z.B. pts1-200202081707
Fuer "date" ist dieses Format kein Problem. Befehl: date +"%Y%m%d%T"
"tty" gibt aber z.B. /dev/pts/0 aus. Hier muss also zusaetzlich noch das Output formatiert werden. Die "\" sowie das "dev" sollen raus!
$ BLAH=`tty | cut -d / -f 3,4 | sed s\|/\|\|`-`date +"%Y%m%d%T"` $ echo $BLAH pts3.2002020817:56:32 Henne -- Hendrik Vogelsang aka Henne mailto: hvogel@hennevogel.de If you could be either God's worst enemy or nothing, which would you choose? # fightclub sigs made with fortune
On Fri, 8 Feb 2002 17:16:35 +0100 "Daniel Geske" <daniel.geske@yoc.de> wrote:
Hallo Leute!
Ich benoetige Hilfe mit Shell Scripts.
Hier ist mein Ziel: Ein shell script generiert einen Dateinamen abhaengig von Uhrzeit und Konsole, auf dem das script ausgefuehrt wird. Damit werden einzigartige und ueberschaubare Dateinamen generiert.
Soviel weiss ich bereits: Mit date kann ich das Datum anzeigen. Mit tty kann ich sehen, wo ich eingeloggt bin.
Die Dateinamen sollen dieses Format haben: Konsole-JahrMonatTagStundeMinuteSekunde z.B. pts1-200202081707
Fuer "date" ist dieses Format kein Problem. Befehl: date +"%Y%m%d%T"
"tty" gibt aber z.B. /dev/pts/0 aus. Hier muss also zusaetzlich noch das Output formatiert werden. Die "\" sowie das "dev" sollen raus!
Hi, so: ------8<-------- datum=$( date +"%Y%m%d%T" ) oldifs=$IFS IFS=/ set -- $( tty ) filename="${3}${4}-${datum}" echo "Creating $filename..." touch $filename ## oder echo "Text , $VARIABLE oderwasauchimmer" >$filename IFS=$oldifs ------8<-------- man bash /IFS /Command substitution /REDIRECT wäre extrem angesagt ;) so long... bernd
Hallo Daniel, * Daniel Geske schrieb am 08.Feb.2002:
Hier ist mein Ziel: Ein shell script generiert einen Dateinamen abhaengig von Uhrzeit und Konsole, auf dem das script ausgefuehrt wird. Damit werden einzigartige und ueberschaubare Dateinamen generiert.
Du hast ja schon ein paar Tipps bekommen, aber mal was grundlegenderes: Was ist, wenn Du Dein Skript von cron oder pppd (/etc/ppp/ip-up.local) aufrufen läßt? Dann ist da kein tty zugeordnet. Überhaupt, ist es nicht viel geschickter neben die Uhrzeit noch $$ zu nehmen? In $$ steht die PID der Shell. Die dürfte jedesmal eine andere sein. Selbst wenn man berücksichtigt, daß sie sich irgendwann mal wiederholen, dann hast Du ja noch die Uhrzeit. auch mktmp könnte für Dich von interesse sein. Bernd -- Homepages von deutschsprachigen Linux-Gurus: Kristian Köhntopp: http://www.koehntopp.de/kris/artikel/ Sven Guckes: http://www.math.fu-berlin.de/~guckes/sven Robin S Socha: http://socha.net/index2.html |Zufallssignatur 10
On Fri, 8 Feb 2002, Bernd Brodesser wrote:
* Daniel Geske schrieb am 08.Feb.2002:
Hier ist mein Ziel: Ein shell script generiert einen Dateinamen [...]
[...]
auch mktmp könnte für Dich von interesse sein.
mktemp ;-) Oder hiess das mal anders? *wunder* Gruss Peter Blancke -- Nachtwaechter ist der Wahnsinn, weil er wacht...
Danke an alle! Mehrere Loesungsvorschlaege - alle Klasse! Gruesse Daniel
-----Original Message----- From: Peter Blancke [mailto:blancke@gmx.de] Sent: Friday, February 08, 2002 8:54 PM To: Suse-Linux@Suse. Com Subject: Re: shell script problem
On Fri, 8 Feb 2002, Bernd Brodesser wrote:
* Daniel Geske schrieb am 08.Feb.2002:
Hier ist mein Ziel: Ein shell script generiert einen Dateinamen [...]
[...]
auch mktmp könnte für Dich von interesse sein.
mktemp ;-)
Oder hiess das mal anders? *wunder*
Gruss
Peter Blancke
-- Nachtwaechter ist der Wahnsinn, weil er wacht...
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
participants (6)
-
B.Brodesser@t-online.de
-
Bernd Obermayr
-
Daniel Geske
-
Henne Vogelsang
-
Peter Blancke
-
Thilo A. Coblenzer