scp 输出无意义的消息并失败

scp 输出无意义的消息并失败

SSH 完全可以通过以下命令运行:

$ ssh user@$THE_IP_ADDRESS

但是当我尝试 scp 时,我得到了完全无意义的输出

$ scp ~/file user@$THE_IP_ADDRESS:~/file
\033[?25l\033[?7l\033[0m\033[31m\033[1m            .-/+oossssoo+/-.

命令失败。此消息是什么意思?为什么我无法复制我的文件?

客户是:

Darwin MacBook-Pro-4.local 17.4.0 Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64 x86_64

服务器是:

Linux cortex-deus 4.13.0-36-generic #40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

答案1

原来是我.bashrc弄坏了。我的.bashrc电话新取回登录时打印一些样式化的 ascii 艺术。这.-/+oossssoo+/-.是 ascii 艺术的一部分,其他内容是颜色转义码等。我通过在登录时不打印任何内容来解决这个问题。

编辑:但是如果您坚持在登录时回显像 ascii 艺术这样的花哨的东西,您可以保护您的命令以if [[ $- =~ "i" ]]检查会话是否是交互式的。

答案2

我遇到了同样的问题。该问题是由终端会话开始时的 neofetch 调用引起的。通过在我的 .bashrc 中执行此操作可修复:

if [[ $- != *i* ]]; then
    return;
else
    if [ -x /usr/bin/neofetch ]; then
        neofetch
    fi
fi

相关内容