Wolfgang Machert wrote:
Hallo,
Hallo,
folgende Sequenz ist teil eines Shell Scripts: EXCLUDE="$OLDEXCLUDE -path /etc/X11/* -prune -o" find /etc $EXCLUDE -print
Problem hierbei ist, dass die Bash bei Substition der Variable EXCLUDE den Pfad /etc/X11/* aufloest und durch saemtliche Dateien im Verzeichniss ersetzt - was find nicht mag.
Escape ich den Pfad aber mit: EXCLUDE="$OLDEXCLUDE -path "/etc/X11/*" -prune -o" find /etc $EXCLUDE -print
klappts wieder nicht da Bash jetzt meinen Escape wiederrum stark Escaped (in der Form ... -path '"/etc/X11/*"') - was find auch nicht mag... Ich habe jetzt die alternative Version mit find ... | grep -ve EXCLUDE gewaehlt, bin damit aber nicht so recht zufrieden - schliesslich muesste es ja auch direkt gehen.
Wenn mir da jemand weiterhelfen kann, wuerde ich mich freuen.
Hast du mal versucht das find-Kommando in einer Subshell zu starten, der man den Parameter -f mitgibt ? Damit schaltet man die "path expansion" ab.
~> bash -c 'echo /etc/X11/*' /etc/X11/XF86Config /etc/X11/Xmodmap /etc/X11/Xmodmap.remote /etc/X11/fs /etc/X11/fvwm2 /etc/X11/lbxproxy /etc/X11/proxymngr /etc/X11/rstart /etc/X11/susewm /etc/X11/twm /etc/X11/xdm /etc/X11/xinit /etc/X11/xkb /etc/X11/xserver /etc/X11/xsm
~> bash -f -c 'echo /etc/X11/*' /etc/X11/*
cya Wolfgang
Jens