Ich versuche, den Inhalt eines Verzeichnisses mithilfe eines Shell-Skripts abzurufen.
Mein Skript lautet:
for entry in `ls $search_dir`; do
echo $entry
done
Wo $search_dir
ist ein relativer Pfad? Allerdings $search_dir
enthält viele Dateien mit Leerzeichen im Namen. In diesem Fall wird dieses Skript nicht wie erwartet ausgeführt.
Ich weiß, ich könnte verwenden for entry in *
, aber das würde nur für mein aktuelles Verzeichnis funktionieren.
Ich weiß, dass ich in dieses Verzeichnis for entry in *
wechseln, es dann wieder ändern kann, aber meine besondere Situation hindert mich daran.
Ich habe zwei relative Pfade $search_dir
und $work_dir
, und ich muss an beiden gleichzeitig arbeiten, sie lesen, Dateien darin erstellen / löschen usw.
Was mache ich jetzt?
PS: Ich benutze Bash.
for entry in "$search_dir/*"
nicht funktionieren? Warum müssen wir/*
außerhalb von Anführungszeichen setzen?