在尝试编写脚本时,我发现了一个有趣的问题cat
。如果我在命令行执行以下操作,一切正常:
var=$(ssh user@server "cat /directory/myfile.sh")
echo $var > ~/newfile.sh
这有效,我有一个具有所有正确格式的脚本文件并且可以运行它。但是,如果我在脚本中执行完全相同的操作:
#!/bin/sh
var=$(ssh user@server "cat /directory/myfile.sh")
echo $var > ~/newfile.sh
该文件被回车和奇怪的格式破坏。
有谁知道为什么会这样?我的目标是最终从服务器中获取脚本并在我的机器上本地运行它。
编辑
我现在知道这是因为我#!/bin/sh
在我的 shell 脚本中调用而发生的。命令行有效,因为我正在使用zsh
并且它保留了格式。
不管外壳如何,有没有办法恢复结果?