我想在bash中编写脚本来连接到服务器,在另一个服务器上ping,从ping命令获取ip,并将该信息发送回运行脚本的pc,最后连接到之前ping的服务器。
我的剧本:

#!/bin/bash
echo "Script to connect to server"
#ip_p used to connect to first server, on that server i want to use ping command'
ip_p=XYz.XYZ.XYZ.XYZ
user='username to the servers'

#ip_d - in that variable i want to save ip of the pinged server

ssh -t $user@$ip_p ip_d="ip_d=ping -c1 $1.domain | sed -nE 's/^PING[^(]+\(([^)]+)\).*/\1/p' && exit "
echo "start"
echo $ip_d
echo "stop"
ssh -t $user@$ip_d

我希望如何工作:
域我要检查test.nyslay.pl
连接到脚本中定义了ip和用户名的服务器
ping服务器(part.nyslay.pl)总是一样的,但是“test”我想从脚本运行的第一个参数中读取
从上一点获取域的ip
将ip从点2传输到运行脚本的本地计算机
连接到从点2获取ip的服务器

最佳答案

使用命令替换:

ip_d=$(ssh -t $user@$ip_p "ping -c1 $1.domain | sed -nE 's/^PING[^(]+\(([^)]+)\).*/\1/p'")

ping的输出(通过sed)通过ssh到达本地机器,其输出被捕获在本地变量ip_d中。

关于linux - 在ssh中传递变量并获得答案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41000392/

10-11 22:54
查看更多