【发布时间】:2016-11-03 06:59:41
【问题描述】:
我正在尝试在远程机器上执行命令并获取输出。
我尝试在下面的 shell 脚本中实现,但无法获取内容。
#!/bin/bash
out=$(ssh huser@$source << EOF
while IFS= read -r line
do
echo 'Data : ' $line
done < "data.txt"
EOF
)
echo $out
输出:
Data : Data : Data :
我可以看到“数据:”被打印了 3 次,因为文件“data.txt”有 3 行文本。
我不能使用 scp 命令直接获取文件,因为我可能需要运行一些命令来代替文本文件。
有人可以帮我找出问题吗?
提前致谢。
【问题讨论】:
-
如果在每行代码的开头放置四个空格,而不是“>”,它的格式会更好。或者删除 >s 并点击
{}按钮。 -
顺便说一句,shellcheck.net 是你的朋友。
-
...其中大部分是 stackoverflow.com/questions/2374276/… 的重复——其余的只是对
echo扩展的引用。 -
谢谢大家的建议。