On Don, Jun 21, 2001 at 01:14:41 +0200, Sascha Peters wrote:
Am Donnerstag, 21. Juni 2001 um 05:01 schrieb Bernd Brodesser / Sascha Peters: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ *urrks* ;-)
Wenn Du als erstes Argument mp3 hast, dann ersetzt die Shell *.$1 mit allen Dateien im aktuellen Verzeichnis, die nicht mit einem . anfangen und mit .mp3 enden. Ist das Argument hingegen wav, so werden alle Dateien im aktuellen Verzeichnis genommen, die nicht mit einem . beginnen und mit .wav enden.
Wie könnte man denn es so einrichten das man auch Dateinamen nimmt die mit einem Punkt anfangen?
ls *.$1 .*.$1 | while read datei; do
Ja, datei ist eine Variable. Nach read kommt immer der Bezeichner einer Variablen. ACHTUNG: Da darf kein $ vor. Bei der shell kommt bei der Auswertung einer Variablen ein $ vor den Namen, aber nur dort. Bei der Definition der Variablen darf kein $ stehen. Anstelle von datei kannst Du auch alles mögliche wählen, aber datei bietet sich hier an.
danke das leuchtet mir nun ein, also wird dort diese Variabele erst definiert desewegen habe ich das auch nicht verstanden!
Wenn Du das (für Dich zum Lesen des Scripts) deutlicher machen willst, kannst Du die Variable vorher deklarieren: datei= ls *.$1 .*.$1 | while read datei; do Das spielt aber für den Ablauf des Scripts keinerlei Rolle. Die Shell kann man nicht zwingen, nur Variablen zu benutzen, die vorher deklariert wurden und es gibt auch keine Datentypen in dem Sinne, dass man eine Variable explizit als numerisch / string ... definieren kann (AFAIK). Jan