Bash:ssh输入到while循环

时间:2015-09-15 16:16:21

标签: bash loops ssh while-loop aix

我试图查询远程服务器上日志文件的内容,但是,我似乎无法让它工作。

#!/bin/bash
while read line; do
        echo "Do stuff to the file, line by line"
done < ( ssh -n user@server "cat /path/to/file" )

我在第一个括号中出现语法错误。如果我删除括号,我会在&#34; -n&#34;中收到语法错误。标志。

所有内容都可以从shell中正常运行,所以我假设这里有一些行为,我没有正确理解。

谢谢!

1 个答案:

答案 0 :(得分:4)

您需要另一个<进行流程替换。

#!/bin/bash
while read line; do
        echo "Do stuff to the file, line by line"
done < <( ssh -n user@server "cat /path/to/file" )

第一个<指定输入重定向。 <(...)构造是进程替换,类似于命令替换,但将封闭命令的输出视为文件而不是字符串。