Hallo, Am Mit, 28 Jun 2006, Al Bogner schrieb:
Am Mittwoch, 28. Juni 2006 17:54 schrieb David Haller:
Am Mit, 28 Jun 2006, Al Bogner schrieb:
Etwas Bauchweh habe ich mit dem Quoting. In diesem Fall kann garantiert werden, dass keine Leerzeichen vorkommen. Wie müsste ich quoten, wenn das Verzeichnis Leerzeichen enthält?
Nochmals meine bereits o.a. Frage, wie erreiche ich eine Kontrollausgabe beim Ablauf des Scripts?
TEST_DIR="$MYDIR""/TEST_"`basename \`pwd\` | cut -c9-30` find $MYDIR -type d -regex ".*$TEST_DIR.*" -print0 | xargs -r -0 rm -r
pwd="`pwd`" TEST_DIR="${MYDIR}/TEST_`basename \"$pwd\" | cut -c9-30`" find "$MYDIR" ...
Oder:
TEST_DIR="${MYDIR}/TEST_$(basename $(pwd) | cut -c9-30)" find "$MYDIR" ... [..] Wie könnte man noch absichern, dass die Variablen nicht leer sein dürfen, dass also nicht als User ein rm -r / entstehen kann.
test -z "$TEST_DIR" && exit 1 Hierbei ist aber das quoten essentiell! Sonst sieht die shell ein 'test -z && exit 1' soll aber ein 'test -z "" && exit 1' sehen. Alternativ und "unempfindlicher": test -n "$TEST_DIR" || exit 1 test "x${TEST_DIR}" = "x" && exit 1 und als zusaetzlichen(!) Test noch: test "x${TEST_DIR}" != "x/" || exit 1 Achso, zum ausgeben noch eine Variante: { find ... -print0 | tee /dev/stderr | xargs ... } 2>&1 | tr '\0' '\n' HTH, -dnh --
Write the code like you are going to lose your memory in six months. Most people would say I write code like I've already lost my mind. Is that the same thing? -- Randal L. Schwartz
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com