On Tue, Dec 2, 2014 at 2:19 PM, Alexander Dalloz <ad+lists at uni-x.org> wrote: > Am 02.12.2014 um 19:05 schrieb James B. Byrne: > >> I am attempting to get a script borrowed from DJB to work on my CentOS-6.6 >> box. Simplified it looks like this: >> >> tcpdump -l -n -e port 53 \ >> | awk '{if ($14 ~ /A.*?/) print $15}' \ >> | while read domain ; do echo $domain ; done ; >> >> The sticking point is the 'while read' construct. Run just as 'tcpdum | >> awk' >> I get this: >> >> english.stackexchange.com. >> www.urbandictionary.com. >> www.urbandictionary.com. >> www.urbandictionary.com. >> www.urbandictionary.com. >> api.mywot.com. >> a.udimg.com. >> a.udimg.com. >> fonts.googleapis.com. >> . . . >> >> Run with the 'while read $domain ; do echo ' pipe nothing appears >> whatsoever. >> What am I doing wrong? >> > > while read domain; do > echo ${domain} > done < <(tcpdump -l -n -e port 53 | awk '{if ($14 ~ /A.*?/) print $15}') > > The "echo ${domain}" part is certainly just a simplification of a more > complex command to run on the variable. Else it would be pointless as awk > is printing out the domain field 15. > > Alexander > If not a typo in the message, your mistake, and I do it all the time, is using while read $domain instead of while read domain Tony