本文共 1346 字,大约阅读时间需要 4 分钟。
[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!
--按照链接介绍,这个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的显示.这个在以后工作中注意.
转载地址:http://tvhwl.baihongyu.com/