Hallo Dirk, Dirk schrieb:
sorry wenn ich dich weiter belästige, aber du bist der einzige der bisher geantwortet hat :) Ich wollte zwar an die Liste senden, habe hier im Webfrontend nur die möglichkeit des Antwortens (komische sache das). könntest ja trotzdem an die Liste anworten, indem Du die Mailadresse manuell einfügst. Evtl interessiert es ja auch noch andere ;) Ich habe Deine Mails mal an die Liste gesendet... (War mir vorhin nur nicht sicher, ob es wirklich PM's waren)
Dieses Script wird von einem anderen System aus aufgerufen und soll dann die Dateien, die vorher von dem System aus gescpt werden verschlüsseln und per ftp übertragen. Also habe ich ja nur den Aufruf mit $1, da ich nicht wissen kann wie die Dateien heißen. Kann ich denn am Anfang des scriptes schon Variablen definieren, die ich nicht genau kennen kann?
datime=date... neuedatei=$1_$datime
neuedatei ergibt sich ja erst viel weiter unten, also nach dem mv? Ich habe immer gedacht, dass man das immer step by step machen muss?
Bin da nich so der Crack :)
danke dir aber schonmal, die erste Lösung geht schonmal, muss nur noch testen was passiert wenn 5 Prozesse das script aufrufen, dabei ist aber zum Glück $1 immer unterschiedlich.
die Festlegung <neuedatei=$1_$datime> kannst Du natürlich nur treffen, wenn Du die Variable $1 bestimmten kannst. Wenn Dein Script von mehrerern Prozessen aufgerufen werden soll, wär entweder "$$" (PID Deines Scriptes) ganz interessant, um den temporären Namen zu bilden. Evtl könntest Du auch noch mit x=$[ $x+1 ] eine Variable hochzählen (müsstest natürlich vorher --am Beginn des Scriptes-- noch die Variable auf einen definierten Wert setzen ... 0 oder 1 z.B.) und den fortlaufenden Wert mit in die Bildung Deines neuen Namens einfügen. Des weiteren solltest Du beachten, das Du mit Deinem Script so wie es jetzt ist, Probleme mit Leerzeichen im Dateinamen bekommst! Ich hab mal ein bisschen drin rum geändert: #!/bin/bash x=0 DATIME=$(date +%H%MUhr_%d%m%y) # DATIME is solange gültig, bis Du es neu definierst. Also wie hier am # Anfang des Scriptes definiert => gültig bis zum Scriptende! for i in $1 do x=$[ $x+1 ] NEW_NAME="${i}_${DATIME}_$x" mv "$i" "${NEW_NAME}" ## warum machst Du oben eine for Schleife und hier wieder $1 ?? ## ich habs mal geändert. ## oder sollte das schon immer $i heißen ?? ## Warum machst Du einen move, wenn du den Namen nicht verwendest? ## ,bzw. die Datei nicht verwendest ? ## Solltest auch daran denken temporäre Dateien am Ende wieder zu ## löschen! gpg -schalter USERNAME -o "${i}.pgp" "$i" ## hier auch ?? echo "$i" done Soll nur mal ne Anregung sein. guck mal, ob Dein Script wirklich so funktioniert, wie Du es Dir vorgestellt hast. Weitere Tipps gerne Gruß Axel -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org