我有一个名为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
比较两者时,我得到了正常结果。
然后我使用that2.txt
脚本获取文件expect
以避免输入ssh连接的密码,并使用此内容
a
c
d
f
使用cat
我比较(视觉上)两个文件并且是相同的,但是当我使用diff this.txt that.txt
时,我得到的结果毫无意义(它表示来自this.txt
的任何内容都在{ {1}})。
此外,如果我使用that2.txt
,我会得到无意义的结果。
也许是因为我使用两种不同的解释器(因为我使用expect和bash)并且文件编码不同?有什么想法吗?
PD:希望我自己解释一下。我不是说英语的人,这是我的第一个问题。答案 0 :(得分:1)
我假设您的文件在行的末尾或不同的行尾标记处都有空白,可能两者都有。请比较od -c that.txt
和od -c that2.txt
的输出。此外,可能值得检查文件大小。
哦,我应该补充一点,您不需要将密码放入expect
脚本中。 ssh可以使用公钥对,很多更安全的替代方案,而且不是很难设置。检查man ssh-keygen
是否有开始。