如何在bash命令返回的结果中保持换行

Hai*_*ang 3 bash

比方说,我可以以用户 foo 的身份 rsh 到机器 XXX,然后在执行后:

$result=$(rsh -l foo XXX "ls");
echo $result;
Run Code Online (Sandbox Code Playgroud)

发现结果中去掉了换行符,一行一行的看不到结果。那么如果我想让换行符输入返回的结果,我该怎么办?

tri*_*eee 5

换行符就在那里;错误在于echo用于检查它(变量周围也没有双引号!)

result=$(rsh -l foo XXX "ls")
echo "$result"
Run Code Online (Sandbox Code Playgroud)

在琐碎的情况下,您可以不用引号就可以逃脱,但有趣的情况甚至可能包含安全问题。

如果您只是捕获 的标准输出rsh以便您可以自己将其打印到标准输出,那么这是无用的echo