Mailinglist Archive: opensuse-de (2226 mails)

< Previous Next >
Re: Bashscript: Gelöscht e Dateien anzeigen
  • From: David Haller <lists@xxxxxxxxxx>
  • Date: Thu, 29 Jun 2006 11:46:19 +0200
  • Message-id: <20060629094619.GB2839@xxxxxxxxxxxxxxxxxx>
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@xxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: suse-linux-help@xxxxxxxx

< Previous Next >
Follow Ups