[20150429]使用scp问题.bashrc出现echo.txt

[20150429]使用scp问题.bashrc出现echo.txt

--前几天我在调试tmux时,在.bashrc中加入了如下代码:

if [[ '' = "$TMUX" ]]
then
    export INPUTRC=/etc/inputrc
    echo Welcome to bash
else
    export INPUTRC=/etc/tmux.inputrc
    echo Welcome to Tmux
fi


--这样在正常登陆时会显示:
Welcome to bash
--如果启动tmux会显示:
Welcome to Tmux


--但是我遇到一个会诡异问题,就是使用从另外1台机器scp拷贝文件到这台机器,会出现无法拷贝的情况:


# scp /tmp/aa.txt root@192.168.xx.yyy:/tmp
root@192.168.xx.yyy's password:
Welcome to bash

# ssh 192.168.xx.yyy ls -l /tmp/aa.txt
root@192.168.xx.yyy's password:
Welcome to bash
ls: /tmp/aa.txt: No such file or directory

--可以发现文件并没有拷贝过去.如果我注解echo.

if [[ '' = "$TMUX" ]]
then
    export INPUTRC=/etc/inputrc
#    echo Welcome to bash
else
    export INPUTRC=/etc/tmux.inputrc
#    echo Welcome to Tmux
fi

# scp /tmp/aa.txt root@192.168.xx.yyy:/tmp
root@192.168.xx.yyy's password:
aa.txt                                     100%   59KB  59.3KB/s   00:00

--可以发现取消echo,scp工作正常,why? 做一个简单跟踪. 先删除文件.

# strace -o /tmp/scp.txt -f -t scp /tmp/aa.txt root@192.168.xx.yyy:/tmp
root@192.168.xx.yyy's password:
Welcome to bash

--看跟踪文件,居然看不出什么名堂... 只能google!

http://*.com/questions/12440287/scp-doesnt-work-when-echo-in-bashrc
https://bugzilla.redhat.com/show_bug.cgi?id=20527

--按照链接介绍,这个bug早就存在,按照介绍我写成如下:
if [[ '' = "$TMUX" ]]
then
    if [ "$SSH_TTY" ]
    then
        echo Welcome to bash
    fi
    export INPUTRC=/etc/inputrc
else
    export INPUTRC=/etc/tmux.inputrc
    echo Welcome to Tmux
fi

$ scp /tmp/aa.txt root@192.168.xx.yyy:/tmp
root@192.168.xx.yyy's password:
aa.txt                         100%   59KB  59.3KB/s   00:00

--当然我调试已经完成,完全不需要echo的显示.这个在以后工作中注意.

上一篇:MFC中OpenGL旋转的问题


下一篇:Read from socket failed: Connection reset by peer 问题