linux - 奇怪的差异行为

标签 linux ssh diff expect

我有一个名为 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.txtod -c that2.txt 的输出。此外,可能值得检查文件大小。

哦,我要补充一点,您不需要将密码放入 expect 脚本中。 ssh 可以使用公钥对,这是一种 更安全的选择,而且设置起来并不难。检查 man ssh-keygen 开始。

关于linux - 奇怪的差异行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20555162/

相关文章:

mysql - 验证 MySQL 用户名和密码

linux - 从 TypeScript 运行任何 Linux 终端命令?

python - 通过 Python 子进程的 SSH 密码

git - 执行 ssh-add 并自动输入密码的脚本

ssh - 如何从 IBM Bluemix 下载日志文件?

groovy - 如何在 Gradle 中比较文件/文件夹?

git - 如何使用 textmate 查看 git diff

python - ctags 不递归搜索

diff - Perforce待定变更列表差异脚本

linux - 如何使用 netfilter 等 native Linux 工具按内容过滤数据包?