我正在编写一个 zsh 脚本,我想在其中建立 SSH 连接,向远程主机发送一些命令并读取输出。
我可以做类似的事情
cat commands.list | ssh foobar.com | { process output }
但是,这将一次性执行并且连接将关闭。相反,我想做类似的事情 -
while [ some condition ]; do
write command to ssh process
read output from ssh process
make some decision about the next command to write to ssh process
do
我已经查看了zsh 重定向和zsh 进程替换,但无法弄清楚如何在这里准确地使用它们来发挥我的优势。
有一个 <(..) 形式的进程替换用于读取和一个 >(..) 形式用于写入,但没有我可以同时读写的形式。如果有一个我可以将进程绑定到自定义文件描述符?
我还尝试将 ssh 进程的 stdin 和 stdout 绑定到两个 fifo(管道),但是(使用 echo)写入 stdin 管道也会发送一个 EOF(当 echo 进程结束时),在执行一个命令后关闭连接书面
如果/我可以在这里实现我想要做的事情,有什么想法吗?
谢谢。