2017-07-18 48 views
-1

我正在尝试确定端点的IP并将其写入文件。 当我键入:如何仅将命令的结果输出到文件?

dig +short endpoint.com 

在命令提示符下 我得到:

10.50.4.235 

然而,当我尝试在脚本中使用此命令编写输出到文件:

dig +short $EndpointName > /home/ec2-user/endpoint-ip.txt 

我在文件中得到这个:

endpoint.com 
10.50.4.235 

它包含变量的值,我宁愿只是结果(仅限ip)。非常感谢你的帮助。

+0

尝试'host endpoint.com'。也许你需要使用'grep'来更好地过滤它。 – Azize

+0

当stdout是终端或文件而不是管道时,某些命令的操作方式会有所不同。试试'dig + short endpoint.com'和'dig + short endpoint.com |猫' –

+0

你需要引用“$ EndpointName”。 – hek2mgl

回答

0

尝试revese的endpoint.com

dig +short endpoint.com | grep -v endpoint.com > endpoint-ip.txt 
+0

谢谢你 - 这产生了相同的结果 - 文件中的两个条目: FQDN和 IP – kavise

+0

尝试更改输出文件名,也许别的东西正在写入文件。此外,EndpointName.txt包含多少行? – user2286991

1
#!/bin/bash 
URL="endpoint.com" 
dig +short $URL > dig-ip.txt 

文件中的结果只给出了IP的grep。

cat dig-ip.txt 
23.239.26.161 

必须修改您赋值给变量$ EndPointName的值。

+0

谢谢我试过使用“around'EndpointName',但脚本失败 - 错误是”无法运行命令EndpiontName ...等“ – kavise

+0

变量$ EndpointName您在哪里取值,某个文件或另一个命令的结果?@kavise – aramirez

相关问题