- 通常,我可以运行这个命令
ssh -lroot [host ip] "echo -e 'test1\ntest2'" > ~/test.txt
在host [host ip]中的test.txt文件中写入两行。 - 然而,当我将它与并行(即
parallel -a argfile -j3 -k --tag ssh -lroot {} "echo -e 'test1\ntest2' \> ~/test.txt"
)一起使用时,它会忽略'\n'并将'test1ntest2'实际写入test.txt。 - 如何使'\n'在并行命令中按预期工作?有人能帮忙澄清一下吗?
- 我尝试在单引号前添加反斜杠,如下所示:
parallel -a argfile -j3 -k --tag ssh -lroot {} "echo -e \'test1\ntest2\' \> ~/test.txt"
还是不像预期的那样。 - 尝试在“\n”之前添加反斜杠,也不起作用。
parallel -a argfile -j3 -k --tag ssh -lroot {} "echo -e 'test1\\ntest2' \> ~/test.txt"
个
我只是想写两行到某个文件的远程服务器批量使用并行...
2条答案
按热度按时间e7arh2l61#
已使用以下命令修复此问题:第一个月
我认为解析过程可能如下:
\\\\n
个\\n
个\\n
个\n
个\n
解析为新行。如果我们将单引号改为双引号或直接删除单引号,反斜杠的数量需要改为双引号:
parallel -a argfile -j3 -k --tag ssh -lroot {} "echo -e "test1\\\\\\\\ntest2" \> ~/test.txt"
.玩得开心,伙计们:)。yqkkidmi2#
也可以试试
--nonall
:字符串