PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SHELL = basename



holzkbri
07-05-2004, 09:40
Hallo
ich bins mal wieder mit so einer komischen shell frage :-)
hier als erstes der code

if [ -e $DATAFILE ]
then
VARIABLE=$( sed -n '1p' $DATAFILE );
echo "$VARIABLE";
VARIABLE="`basename $0`"
echo "$VARIABLE"\1>&2;
fi

ich will aus der datei $DATAFILE die erste zeile auslesen.
die sieht so aus
/ora_2/oradata/DBTEST33/system01.dbf
mit dem basename möchte ich. aus der zeile nur system01.dbf stehen haben. und das sich dieser wird in eine variable speichert. nur bekomme ich das nicht so ganz hin.
das liegt wohl an dem basename $0

kann mir jemand helfen ?
wäre super


p.s. wundert euch nicht. diesen text habe ich auch auf linuxforen.de gepostet. aber bis jetzt konnte mir noch keiner helfen

peschmae
07-05-2004, 10:21
if [ -e $DATAFILE ]
then
VARIABLE=$( sed -n '1p' $DATAFILE );


Ginge auch mit head - mit sed natürlich auch, aber ich hab erst mal blöd geguckt. :)



echo "$VARIABLE";
VARIABLE="`basename $0`"
echo "$VARIABLE"\1>&2;
fi


wieso nicht


VARIABLE=$(basename "$VARIABLE")

:confused:

bzw. gleich


VARIABLE=$(basename "$( sed -n '1p' $DATAFILE )")


MfG Peschmä

holzkbri
07-05-2004, 10:26
super vielen dank

holzkbri
07-05-2004, 10:29
gibt es jetzta uch die möglichkeit bei deinem letzten script
den ausgeschniten pfadnamen auch in eine variable zu speichern ?

peschmae
07-05-2004, 15:31
Nein, dann machst dus halt wieder auf zwei Zeilen:



PFAD=$( sed -n '1p' $DATAFILE );
DIR=$(basename "$PFAD")


MfG Peschmä