【问题标题】:Feed Content of a File to a Bash Script [duplicate]将文件的内容提供给 Bash 脚本 [重复]
【发布时间】:2016-06-28 23:28:31
【问题描述】:

我正在尝试构建一个脚本,该脚本将使用两个文件的内容运行命令,并将该命令的结果附加到另一个文件。

我的两个文件:

  1. nameservers - 包含我的 DNS 地址。
  2. hostnames - 包含需要根据名称服务器解析的主机名。

我需要将nameservershostnames的内容传递给这个命令:

dig @[content of nameservers file] -t a [content of hostnames]

然后每次运行它都会提取查询时间值并将其附加到以下格式的文件中:

[nameserver1] [query time value]

喜欢:

1.1.1.1 100
2.2.2.2 120
3.3.3.3 115

【问题讨论】:

  • 您的具体问题是? (我猜我该怎么做?)
  • 你读过 BashFAQ #1(mywiki.wooledge.org/BashFAQ/001)吗?
  • 我猜你需要传递每个域名服务器的所有主机名,不是吗?

标签: bash dig


【解决方案1】:

这是一种方法:

#!/bin/bash
hostnames=`cat hostnamesfile`
cat nameserversfile | while read n; do
  echo "$hostnames" | while read h; do
    echo -n "$n "
    dig @$n -t a $h | grep 'Query time' | grep -o '[0-9]\+'
  done
done > resultsfile

【讨论】:

  • 这太可怕了。 useless cat 应该很容易修复,read -r 也很容易更改,但其余部分确实应该进行类似的重构。提示:grep 没用;如果您不想多次读取主机文件,可以将其读取到数组中。
  • 有道理,但基于OP,我想让答案尽可能容易理解。
猜你喜欢
  • 1970-01-01
  • 2012-02-16
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-04
  • 1970-01-01
  • 2017-11-17
相关资源
最近更新 更多