我有一个名为 this.txt
的文件,其中包含以下内容:
a
b
c
d
我使用生成的:ls/home > this.txt
然后我创建一个名为 that.txt
的文件,其中包含以下内容:
a
c
d
f
我使用生成的:ssh -p 1111 root@176.178.1.8 'ls/home' > that.txt
当我使用 diff this.txt that.txt
比较两者时,我得到了正常的结果。
然后我使用 expect
脚本获取文件 that2.txt
以避免键入 ssh 连接的密码,包含此内容
a
c
d
f
使用 cat
我比较(视觉上)两个文件并且是相同的,但是当我使用 diff this.txt that.txt
我得到的结果毫无意义(它表示 this.txt
中没有任何内容在 that2.txt
中)。
此外,如果我使用 diff that.txt that2.txt
,我会得到毫无意义的结果。
可能是因为我使用了两个不同的解释器(因为我使用 expect 和 bash)并且文件编码不同?有什么想法吗?
PD:希望我解释了自己。我不会说英语,这是我的第一个问题。
请您参考如下方法:
我假设您的文件在行尾有空格或有不同的行尾标记,可能两者都有。请比较 od -c that.txt
和 od -c that2.txt
的输出。此外,可能值得检查文件大小。
哦,我要补充一点,您不需要将密码放入 expect
脚本中。 ssh 可以使用公钥对,这是一种多 更安全的选择,而且设置起来并不难。检查 man ssh-keygen
开始。