Hi zusammen,
ich hab mir gerade ein kleines Scriptchen gebastelt, dass neu angelegte Dateien/Verzeichnisse (im Zs.-spiel mit incron) in definierten anderen Verzeichnissen symlinked.
Die Bedingung für das jeweils andere Verzeichnis lese ich erstmal anhand von Stichworten aus dem Datei-/Verzeichnisnamen (geplant für spätere Versionen Dateiendungen prüfen).
Jetzt aber das Problem:
Wenn ich die Stichworte als Pattern direkt in den case-Zweigen hinterlege funktioniert es:
Wenn ich dieselben Pattern aber vorher in einer Variable speichere, funktioniert der Mist nicht mehr:
Ich hab auch schon probiert, die Variablen explizit zu expandieren (wenn das jetzt so heißt):
Oder die Stichwörter erst in einer Stringliste zu erfassen und dann mit sed direkt im case-Zweig zu konviertieren:
Auch diese komische Pattern List-Syntax habe ich schon probiert:
..aber die tut bei mir irgendwie garnicht - weder aus einer Variablen, noch wenn ichs direkt in nen case schreibe. Funzt auch nicht mit if - irgenwas mache ich da wohl falsch..
Ich habe noch nicht so viel Erfahrung mit Shellscripting, daher hab ich jetzt keine Ahnung was da der Ansatz ist.
Die Google liefert fast immer nur die case-Syntax.... *gg
ich hab mir gerade ein kleines Scriptchen gebastelt, dass neu angelegte Dateien/Verzeichnisse (im Zs.-spiel mit incron) in definierten anderen Verzeichnissen symlinked.
Die Bedingung für das jeweils andere Verzeichnis lese ich erstmal anhand von Stichworten aus dem Datei-/Verzeichnisnamen (geplant für spätere Versionen Dateiendungen prüfen).
Jetzt aber das Problem:
Wenn ich die Stichworte als Pattern direkt in den case-Zweigen hinterlege funktioniert es:
Code:
case $bla in
*ABC*|*DEF*|*GHI*) ln -s blablabla
*A[0-9]*|*B[a-z]*) ln -s blablabla2
*) echo Alles kaputt..
esac
Wenn ich dieselben Pattern aber vorher in einer Variable speichere, funktioniert der Mist nicht mehr:
Code:
keywords_a='*ABC*|*DEF*|*GHI*'
keywords_b='*A[0-9]*|*B[a-z]*'
case $bla in
$keywords_a) ln -s blablabla
$keywords_b) ln -s blablabla2
*) echo Alles kaputt..
esac
Ich hab auch schon probiert, die Variablen explizit zu expandieren (wenn das jetzt so heißt):
Code:
${keywords_a}
Oder die Stichwörter erst in einer Stringliste zu erfassen und dann mit sed direkt im case-Zweig zu konviertieren:
Code:
*$(echo $keywords_a | sed -e 's/,/*|*/g')*
Auch diese komische Pattern List-Syntax habe ich schon probiert:
Code:
@(ABC|DEF|GHI)
Ich habe noch nicht so viel Erfahrung mit Shellscripting, daher hab ich jetzt keine Ahnung was da der Ansatz ist.
Die Google liefert fast immer nur die case-Syntax.... *gg