我试图查询远程服务器上日志文件的内容,但是,我似乎无法让它工作。
#!/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中正常运行,所以我假设这里有一些行为,我没有正确理解。
谢谢!
答案 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" )
第一个<
指定输入重定向。 <(...)
构造是进程替换,类似于命令替换,但将封闭命令的输出视为文件而不是字符串。