两条命令,一条流水线

Lan*_*nes 11 bash dns

我需要这两个命令是一个(让我可以再管他们):

dig +nottlid -t any bix.hu | egrep -v "^;;|^;|^$" | sort
dig +nottlid -t any www.bix.hu | egrep -v "^;;|^;|^$" | sort
Run Code Online (Sandbox Code Playgroud)

我的意思是我需要将这两个命令的输出放在一个管道中:

$ dig +nottlid -t any bix.hu | egrep -v "^;;|^;|^$" | sort
bix.hu.         IN  A   193.239.149.1
bix.hu.         IN  MX  10 deneb.iszt.hu.
bix.hu.         IN  NS  ns.iszt.hu.
bix.hu.         IN  NS  ns.iszt.hu.
bix.hu.         IN  NS  ns-s.nic.hu.
bix.hu.         IN  NS  ns-s.nic.hu.
bix.hu.         IN  SOA ns.iszt.hu. hostmaster.iszt.hu. 2011053000 28800 7200 604800 14400
Run Code Online (Sandbox Code Playgroud)

dig +nottlid -t any www.bix.hu | egrep -v "^;;|^;|^$" | sort
bix.hu.         IN  NS  ns.iszt.hu.
bix.hu.         IN  NS  ns-s.nic.hu.
www.bix.hu.     IN  A   193.239.149.1
Run Code Online (Sandbox Code Playgroud)

这样我就可以将sha256sum它们放在一起,而无需将两个命令的输出写入一个文件,而sha256sum该文件。

问:是这样的:

echo hi | echo hi2 | sha256sum
Run Code Online (Sandbox Code Playgroud)

当然这行不通,但是有什么解决方案吗?所以我需要sha256sum:

hi
hi2
-->>
697ec886148d94d5b094df14f301f2e5a4abd8098a0e0dc2afb0a97945cea677
Run Code Online (Sandbox Code Playgroud)

但我只能有来自不同命令的输出 [上面提到的,2 个不同的域]。[只想写一个“DNS检查器”脚本来在域的DNS记录更改时警告我]

enz*_*tib 33

一般的解决方案如下:

{ command1; command2; } | some-other-command
Run Code Online (Sandbox Code Playgroud)

  • @hlovdal:是的,但在这种情况下,您正在运行一个子shell(有人更愿意知道),并且不需要第二个`;`。 (4认同)

Mat*_*Mat 14

您可以将多个名称传递给dig

dig +nottlid -t any bix.hu www.bix.hu | egrep -v "^;;|^;|^$" | sort
Run Code Online (Sandbox Code Playgroud)