You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Parallel与SSH命令时转义字符\n无法识别的问题求助

解决Parallel+SSH批量执行时换行符(\n)失效问题

问题原因

你遇到的问题是转义层级冲突导致的:本地Shell、Parallel、远程Shell会依次解析命令中的转义字符,原本的\n被提前解析成了普通字符n,没能传递到远程主机生效。

可行解决方案

方案1:双重转义换行符+调整引号

通过单引号包裹远程命令,避免本地Shell提前解析内容,同时将\n改为\\n,让远程Shell最终解析出换行符:

parallel -a argfile -j3 -k --tag ssh -lroot {} 'echo -e "test1\\ntest2" > ~/test.txt'

方案2:用printf替代echo -e(更跨平台)

echo -e的行为在不同系统(如GNU/BSD)存在差异,printf对转义字符的处理更统一可靠:

parallel -a argfile -j3 -k --tag ssh -lroot {} 'printf "test1\ntest2\n" > ~/test.txt'

方案3:Here Document(直观处理多行内容)

如果需要写入的内容较多,直接用Here Document传递多行文本,完全不需要转义换行符:

parallel -a argfile -j3 -k --tag ssh -lroot {} 'cat > ~/test.txt <<EOF
test1
test2
EOF'

内容的提问来源于stack exchange,提问作者Yayong Duan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 12:05:01