Использование вывода файла в качестве новой переменной для скрипта bash - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь пропинговать 2 разных интерфейса, используя IP-адреса, сгенерированные следующим file.txt:

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

Мне нужен скрипт, который позволяет мне сначала s sh в Device1-1 и ping 192.168.40.145 из источника 192.168.40.144 затем s sh в Device1-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"

Можно ли как-нибудь открыть каждую сессию s sh на другой вкладке?

Мне трудно использовать разные строковые символы из текста файл в качестве переменных в новом скрипте. Должен быть простой способ сделать это. Любые предложения?

Очень ценится !!!

Ответы [ 2 ]

0 голосов
/ 02 мая 2020

Вы, вероятно, можете сохранить вывод в новом файле 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 голосов
/ 30 апреля 2020

У вас есть простой способ сделать то, что вы только что описали. Если вы используете флаг -t в S SH, вы выполните команду сразу после входа в систему. Надеюсь, это поможет. Если не оставить комментарий, чтобы я мог помочь еще немного. :)

  • ssh -t Device1-1 'ping 192.168.40.145 source 192.168.40.144'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...