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