configure! (was: Re: [linux-l] Datum in Script verwenden)

Thomas Kaepernick Thomas.Kaepernick at web.de
Fr Apr 27 22:39:00 CEST 2007


Am Fri, Apr 27, 2007 at 07:43:49AM +1000, schrieb Peter Ross:
Hi Peter,

> Ich habe gestern abend ein simples Shellskript nicht unter CygWin zu 
> laufen bekommen (sh, dig, awk und echo):
> 
> $ dest=app1.mel.acx
> $ ip=`dig -t a ${dest} +short | tail -1`
> $ echo ${ip}
> 192.168.20.120
> # (Okay - got the IP address)
> # (Will see whether it was using CNAMES)
> $ cname_test=`dig -t a ${dest} +short | tail -2 | wc -l`
> $ echo ${cname_test}
> 2
> # (Yes, grep the name which has an A record)
> $ dest=`dig -t a ${dest} +short | tail -2 | head -1`
> $ echo ${dest}
> app1-pub.mel.acx.
> # Fine!
> # (Replace the short hostname with "ports")
> $ port_domain=`echo ${dest} | awk -F. '{printf "ports"; for (i=2; i<=NF; i++) printf "."$i}'`
> $ echo ${port_domain}
> ports.mel.acx.
> # Still okay!
> port_dns_dest="${ip}.${port_domain}"
> $ echo ${port_dns_dest}
> .ports.mel.acx.
> 
> # ?? - I expected 192.168.20.120.ports.mel.acx., as under Linux
> 
> Was dann? Mal schauen, was exakt da steht:
> $ echo ${port_dns_dest} > /tmp/mom
> 
> Mal kurz in die Datei geguckt:
> 
> 192.168.20.120^M.ports.mel.acx.
> 

Dieses ^M kommt mir von einigen Textdateien, die das Betriebssystem
wechselten, bekannt vor. Es ist, glaube ich, ein Zeilenendzeichen von
Windows/DOS. 

> Welches der tollen Tools haut mir denn das rein? awk? Mal schauen:
> 
> port_domain=`echo "$dest" | sed -e 's/^[^.]*/ports/'`
> 
Seh ich das richtig: Du willst einen String mit einem beliebigen
Zeichen am Anfang der Zeile, welches kein beliebiges Zeichen sein
> darf, durch "ports" ersetzen? Da kann doch nichts ersetzt werden.

> Nein. Ergibt das selbe.
> 
> Man kann doch mit solcher Sch**** nicht programmieren! format c: ist die 
> einzige Loesung;-)
> 
> Gruss
> Peter



Mehr Informationen über die Mailingliste linux-l