Bash 如何仅将命令的结果输出到文件?

Bash 如何仅将命令的结果输出到文件?,bash,stdout,Bash,Stdout,我试图确定端点的IP并将其写入文件。 当我打字时: dig +short endpoint.com 在命令提示下 我得到: 但是,当我尝试在脚本中使用此命令将该输出写入文件时: dig +short $EndpointName > /home/ec2-user/endpoint-ip.txt 我在文件中得到这个: endpoint.com 10.50.4.235 它包含了变量的值,我更希望得到结果(仅限ip)。非常感谢你的帮助 尝试展示endpoint.com的grep dig +

我试图确定端点的IP并将其写入文件。 当我打字时:

dig +short endpoint.com 
在命令提示下 我得到:

但是,当我尝试在脚本中使用此命令将该输出写入文件时:

dig +short $EndpointName > /home/ec2-user/endpoint-ip.txt
我在文件中得到这个:

endpoint.com
10.50.4.235

它包含了变量的值,我更希望得到结果(仅限ip)。非常感谢你的帮助

尝试展示endpoint.com的grep

dig +short endpoint.com | grep -v endpoint.com > endpoint-ip.txt
文件中的结果仅给出IP

cat dig-ip.txt
23.239.26.161

在将值分配给变量$EndPointName时,必须进行修改。

请尝试
host endpoint.com
。也许您需要使用
grep
来更好地过滤它。当stdout是终端或文件而不是管道时,某些命令的操作会有所不同。尝试
dig+short endpoint.com
dig+short endpoint.com | cat
您需要引用“$EndpointName”。您一定在做一些您没有提到的事情-
dig+short'endpoint.com'>endpoint ip.txt
只将ip地址写入文件。您确定
$EndpointName
的内容与预期一致吗?您是否正在追加(
>
)而不是覆盖(
)?你的
挖掘版本是什么?谢谢-这是我脚本的全部内容:
#/bin/bash
EndpointName=$(/home/ec2 user/endpoint ip.txt
dig版本是:dig 9.8.2rc1-RedHat-9.8.2-0.62.rc1.55.amzn1无附加,仅一个>感谢我尝试使用“around
EndpointName
但脚本失败-错误是“无法运行命令EndpiontName…等等”“变量$EndpointName用于获取值、某个文件或另一个命令的结果?@KaviseThanky-这产生了相同的结果-文件中的两个条目:FQDN和IPTry更改输出文件名,可能还有其他内容正在写入该文件。此外,EndpointName.txt包含多少行?
#!/bin/bash
URL="endpoint.com"
dig +short $URL  > dig-ip.txt
cat dig-ip.txt
23.239.26.161