当在 shell startup script (比如 profile , bashrc)自动执行过程中产生了任何内容输出时, scp / sftp 会把这些 echo 回来的东西认作协议包进行解析,结果自然是无法读懂这些内容,最终导致文件拷贝失败。 如果能够明确知道在自己的 /etc/bashrc 等文件里面哪些语句会产生 echo 的内容的话,可以通过条件判断进行 echo : if [ $(expr index "$-" i) -ne 0 ]; then echo “welcome to interactive shell , Current is” date +’%Y-%m-%d %T’ fi 这样只有在真正交互登录的时候才会 echo 信息, scp 的时候自动忽略。
2009年08月4日
