Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : awk + bash-variablen



ComSubVie
15-02-2003, 20:17
hi! ich hab da wieder mal ein problem... ich hab da ein kleines backup-script gebastelt, hier ein kleiner auszug:



#!/bin/bash

TARGET=/backup/daten
SOURCE=/old_kanzlei

N=$(ls $TARGET/daily | wc -l)

if [ $N -eq 7 ]; then
ls -t $TARGET/daily/ | tail -n1 | awk '{print ENVIRON["TARGET"]"/daily/"$1;}' | xargs rm
fi


ok, das funktioniert so nicht: rm: cannot remove `/daily/2003-02-05.tar.gz': No such file or directory, er halt aslo das ENVIRON nicht geschafft.



#!/bin/bash

TARGET=/backup/daten
SOURCE=/old_kanzlei

N=$(ls $TARGET/daily | wc -l)

if [ $N -eq 7 ]; then
ls -t $TARGET/daily/ | tail -n1 | awk '{print "$TARGET/daily/"$1;}' | xargs rm
fi


auch mit $$TARGET und \$TARGET versucht funktioniert nicht. ein

awk '{print ENVIRON["PATH"];}'

funktioniert hingegen jedoch....

ich steh jetzt an, keine ahnung warum das eine geht und das andere nicht.... weiß wer rat?

Jasper
16-02-2003, 14:10
Original geschrieben von ComSubVie

ich steh jetzt an, keine ahnung warum das eine geht und das andere nicht....

du musst TARGET exportieren, da es ansonsten nicht awk (für den ein eigener prozess gestartet wird) nicht per environment zur verfügung gestellt wird.

also einfach:

export TARGET=/backup/daten

-j