[linux-l] shell skript probleme mit leerzeichen

Mike Dornberger Mike.Dornberger at gmx.de
Sa Okt 29 01:44:07 CEST 2005


Hi,

On Fri, Oct 28, 2005 at 02:24:26PM +0200, Frank Reker wrote:
> Am Thu 27. Oct 2005 15:07 +0000 schrieb willek:
> >basename=${i%.*}
> >echo $i $basename.$1
> 
> $i quoten - also besser:
> basename="${i%.*}"
> echo "$i" "$basename.$1"
> uebrigns ist basename auch ein programm.

ja, aber /usr/bin/basename macht etwas anderes als das hier. Die Shell
schneidet hier den letzten Punkt und alles was danach kommt ab. (Ob das
jetzt ein Feature von bash ist oder von einer POSIX-Shell verlangt wird,
weiß ich nicht, denke aber letzteres.) Mit dem Programm kann man zwar auch
Suffixe abschneiben, aber soweit ich das in der man page sehe, nur einen
vorher bekannten String. Achso, und das Programm schneidet die
Pfad-Komponente ab, aber bei "for i in * ..." gibt es schon gar keine
Pfad-Komponente im Dateinamens.

Grüße,
 Mike



Mehr Informationen über die Mailingliste linux-l