Unterschiedliche Ergebnisse mit ls ??

Hinweis: In dem Thema Unterschiedliche Ergebnisse mit ls ?? gibt es 2 Antworten. Der letzte Beitrag () befindet sich ganz unten auf dieser Seite.
  • Hallo!
    Ich habe eine Frage zur Shell-Programmierung. Wenn ich in der Konsole "ls /home/otto/*" eingebe,werden mir die Namen der in diesem Verzeichnisses liegenden Dateien und Ordner angezeigt. Erstelle ich ein Skript und will diese Dateinamen in eine For-Schleife einbauen, dann tue ich das mit folgendem Kommando:
    "for VARIABLE in $(ls /home/otto/*)"


    Was mich etwas irritiert: Die Variable $Variable enthält dann nicht nur die Dateinamen,sondern den ganzen Pfad zu den Dateien,was u.U. eine Weiterverarbeitung erschwert. Kann mir jemand sagen,wieso der selbe Befehl (ls) zwei unterschiedliche Ergebnisse ausgibt ?


    Gruß
    Werniman

    Für den Inhalt des Beitrages 71904 haftet ausdrücklich der jeweilige Autor: Werniman

  • Das Sternchen wird nicht von ls aufgelöst, sondern von der Shell. Ausserdem ist ls definitiv nicht geeignet, um maschinenlesbare Ausgaben zu erzeugen. Ich empfehle dafür find in einer while-Schleife. ls ist für's Auge gemacht, nicht zum Auswerten per Programm.

    Für den Inhalt des Beitrages 71907 haftet ausdrücklich der jeweilige Autor: Easy

  • Der * ist überflüssig in Deinem Script - läßt Du Ihn weg erhältst Du nur die Dateinahmen des Verzeichnisses.
    In dieser Hinsicht empfehlenswert ist folgendes ebook: " Klassische Shell-Programmierung" von Arnold Robbins, Nelson H.F. Beebe


    Gruß Boreas

    be tolerant - not ignorant
    Alle Hunde sind schwarz.
    Es gibt einen Hund der nicht weiß ist.

    Für den Inhalt des Beitrages 71908 haftet ausdrücklich der jeweilige Autor: Boreas