如何将远程计算机上循环内运行的命令的输出(通过 ssh)重定向到本地计算机而不破坏循环?

如何将远程计算机上循环内运行的命令的输出(通过 ssh)重定向到本地计算机而不破坏循环?

我在 Ubuntu 20.04 PC 上运行管道 ssh 命令,通过 ssh 连接到远程计算机,侦听特定端口并处理每个传入消息,如下所示:

ssh ${iotlab_ssh_front_end} "nc m3-${sink_m3} 20000 | \
while read line
do 
    seq_num=\$(cut -d';' -f2 <<< \$line)   #splits the line and stores the 2nd element
done"

我现在想要的是通过使用我保存的变量在本地(不在 ssh 内部)运行命令(对于循环的每次迭代)。我不想退出循环。

像这样的东西:

ssh ${iotlab_ssh_front_end} "nc m3-${sink_m3} 20000 | \
while read line
do 
    seq_num=\$(cut -d';' -f2 <<< \$line)
    mosquitto_pub -t 'test/topic' -m \$seq_num      #Need to run this locally on my PC
done"

有没有一种简单的方法可以实现这一目标。任何帮助,将不胜感激。谢谢!

相关内容