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_dirist ein relativer Pfad? Allerdings $search_direnthä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_dirund $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?