为什么脚本和终端命令的输出之间存在差异?

Why is there a difference between the output of a Script and a Terminal Command?

为什么 bash 与终端输出相比改变了我的脚本的输出?

如果我输入

dig +noall +answer NS google.com

I get this

但是如果我用脚本来做

#!/bin/bash
echo "Domain: "
read DOMAIN
echo
DIG=$(dig +noall +answer NS $DOMAIN)
echo $DIG

我明白了 this

我希望获得与在控制台中键入命令相同的结果。

我知道我可以将它们保存并排序(不是完全排序,而是 awk)在一个文件中,但如果可能的话,我想获得相同的结果而不必将结果保存在文件中。

如果对您有帮助,我正在使用 Ubuntu 16.04

Quote your variables!

$ DIG=$(dig +noall +answer NS google.com)

$ echo $DIG
google.com. 86308 IN NS ns2.google.com. google.com. 86308 IN NS ns3.google.com. google.com. 86308 IN NS ns1.google.com. google.com. 86308 IN NS ns4.google.com.

$ echo "$DIG"
google.com.             86295   IN      NS      ns3.google.com.
google.com.             86295   IN      NS      ns1.google.com.
google.com.             86295   IN      NS      ns4.google.com.
google.com.             86295   IN      NS      ns2.google.com.