-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
Moin moin an alle :-)
ich hab folgendes Problem innerhalb eines meiner Skripte:
ich bekomme einen String (mittels cut, awk, etc.") der da lauten könnte:
/etc/*
innerhalb der Bash kann ich ja mittels
ls -1 /etc/*
mit alle Dateien anzeigen lassen. Nun habe ich den String in einer Variable und brauche das gleiche Ergebnis ... also etwas in der Art:
for DATEI in ${BEISPIEL}; do irgendwas; done;
und in $BEISPIEL ist der String "/etc/*" enthalten ... hat jemand eine Idee, wie ich die Eigenart der Bash hier mit dem hinbekommen kann? Also dass der mit den * ersetzt und damit die möglichen Ergebnisse präsentiert? Bisher hab ich lediglich die Idee, dass ich aus dem String den "/*" mittels SED entferne und den rest dann manuell mache ...
Grüße Martin
Hallo Martin,
ich bekomme einen String (mittels cut, awk, etc.") der da lauten könnte:
/etc/*
innerhalb der Bash kann ich ja mittels
ls -1 /etc/*
mit alle Dateien anzeigen lassen. Nun habe ich den String in einer Variable und brauche das gleiche Ergebnis ... also etwas in der Art:
for DATEI in ${BEISPIEL}; do irgendwas; done;
und in $BEISPIEL ist der String "/etc/*" enthalten ... hat jemand eine Idee, wie ich die Eigenart der Bash hier mit dem hinbekommen kann? Also dass der mit den * ersetzt und damit die möglichen Ergebnisse präsentiert?
Hm, also wenn deiner Schilderung der Problemstellung nicht noch ein Detail fehlt, dann würde ich folgende Lösung vorschlagen:
for DATEI in ${BEISPIEL}; do irgendwas; done;
Das funktioniert tatsächlich genau so. Falls Dateinamen, was in /etc eher selten vorkommen dürfte, Leerzeichen enthalten, dann mittels
ls $BEISPIEL | while read LINE; do echo $LINE; done
Sag noch einer, die Bash sei nicht intuitiv ;-)
Beste Grüße Fabian
lug-dd@mailman.schlittermann.de