使用文件的输出作为bash脚本的新变量。

问题描述 投票:0回答:1

我试图使用下面文件.txt生成的IP来ping两个不同的接口。

Eth1/1   ALL  ETHERNET   40   192.168.40.145  Device1-1  Eth16/1   192.168.40.144
Eth1/2   ALL  ETHERNET   40   192.168.41.145  Device1-2  Eth16/1   192.168.41.144

我想找的是一个脚本,让我先通过SSH进入到... 设备1-1 乒乒乓乓 192.168.40.145 出处 192.168.40.144 然后进入 设备1-2 使用这样的语法。

ssh -q Device1-1 "ping 192.168.40.145 source 192.168.40.144" 
ssh -q Device1-2 "ping 192.168.41.145 source 192.168.41.144"

有什么方法可以让我在不同的标签页中打开每个ssh会话?

我很难在一个新的脚本中使用文本文件中的不同字符串作为变量。一定有一个简单的方法可以做到这一点。有什么建议吗?

非常感谢!!!

bash awk sed
1个回答
0
投票

你也许可以将输出结果保存在一个新的文件中。source 该。

awk '{print "ssh -q", "ping", $6, $5, "source", $NF}' file.txt > newfile.txt

的内容。newfile.txt

ssh -q ping Device1-1 192.168.40.145 source 192.168.40.144
ssh -q ping Device1-2 192.168.41.145 source 192.168.41.144

来源于它。

source ./newfile.txt

或者用管道将其输出到 bash

awk '{print "ssh -q", "ping", $6, $5, "source", $NF}' file.txt | bash

0
投票

你有一个简单的方法来做你刚才所说的事情。如果你使用 -t 标志,您将在登录后立即执行该命令。希望这能帮助你。如果没有,请留下评论,以便我可以提供更多帮助:)

  • ssh -t Device1-1 'ping 192.168.40.145 source 192.168.40.144'
© www.soinside.com 2019 - 2024. All rights reserved.