[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://stackoverflow.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的显示.这个在以后工作中注意.

时间: 2024-07-30 11:00:41

[20150429]使用scp问题.bashrc出现echo.txt的相关文章

php中echo、print、print_r、printf、sprintf、var_dump用法介绍

一.echo 定义和用法 PHP echo() 函数输出一个或多个字符串. echo "" 这种方法也可以,不需要括号都行 语法 echo(strings) 参数 描述 strings 必需.一个或多个要发送到输出的字符串. 提示和注释 注释:echo() 实际上不是一个函数,因此您无需对其使用括号.不过,如果您希望向 echo() 传递一个或多个参数,那么使用括号会发生解析错误. 提示:echo() 函数比 print() 函数快一点点. 提示:echo() 函数可以使用简化语法.参

获取磁盘IO与系统负载Load的shell脚本

本节介绍的几段shell脚本,可以用于提取磁盘的I/O信息,系统负载Load信息等   1,提取系统负载信息 复制代码 代码如下: #!/bin/sh host=$(hostname) channel=$(hostname | sed 's/[0-9]//g') runday=$(date +%Y-%m-%d) IPhost=$(/sbin/ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ prin

Apache Spark源码走读(四)Hive on Spark运行环境搭建 &hiveql on spark实现详解

<一>Hive on Spark运行环境搭建 楔子 Hive是基于Hadoop的开源数据仓库工具,提供了类似于SQL的HiveQL语言,使得上层的数据分析人员不用知道太多MapReduce的知识就能对存储于Hdfs中的海量数据进行分析.由于这一特性而收到广泛的欢迎. Hive的整体框架中有一个重要的模块是执行模块,这一部分是用Hadoop中MapReduce计算框架来实现,因而在处理速度上不是非常令人满意.由于Spark出色的处理速度,有人已经成功将HiveQL的执行利用Spark来运行,这就

获取磁盘IO与系统负载Load的shell脚本_linux shell

1,提取系统负载信息 复制代码 代码如下: #!/bin/shhost=$(hostname)channel=$(hostname | sed 's/[0-9]//g')runday=$(date +%Y-%m-%d)IPhost=$(/sbin/ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}')i=1 while [ $i -le 120 ];do rundaytime=$(

15 个‘ls’命令的面试问题(一)

15 个'ls'命令的面试问题(一) Unix或类Unix系统中的"文件列表"命令"ls"是最基础并且使用的最广泛的命令行中工具之一.它是一个POSIX兼容工具,在GNU基本工具集以及BSD各种变体上都可以使用."ls"命令可以结合大量的选项来达到想要的结果. 这篇文章的目的在于通过相关的样例来深入讨论文件列表命令. 15个"ls"命令问题. 1. 如何列出目录中的文件? 答:linux文件列表命令"ls"

Linux_Shell基础

目录 目录 查看系统中可以使用的shell 重定向 管道 变量 export指令与echo的不同 算术运算符 用户个性化系统变量文件 通配符 引号 文件比较运算符 查看系统中可以使用的shell cat /etc/shells /bin/sh /bin/dash /bin/bash /bin/rbash /usr/bin/screen 重定向 > 重定向覆盖输出 >> 重定向追加输出 < 重定向覆盖输入 << 重定向追加输入 Example: find / -name

SSH远程连接时环境变量问题

1. 问题 RHEL服务器A有个启动脚本(普通用户user01运行),里面使用ifconfig获取ip地址如下: Localhost_ip=$(ifconfig |awk -F 'addr:|Bcast' '/Bcast/{print $2}') 由于普通用户user01不能直接识别ifconfig命令,只能使用全路径/sbin/ifconfig,目前处理方式为修改~/.bash_profile文件添加环境变量如下: PATH=$PATH:$HOME/bin 改成如下: PATH=$PATH:$

使用脚本验证XML文档

xml|脚本 辛苦的书写了WAP文件,却无法在微型设备上浏览,手头又没有专业的验证编辑工具,好头疼- 使用如下脚本即简单的可使用Microsoft.XMLDOM验证你的XML文档! <job id="validateWML"><script language="JScript"> if(WScript.Arguments.length==0){  WScript.echo("请拖动欲校验文件至此脚本");  WScript

用PHP动态生成虚拟现实VRML网页

多年前本人开始从事三维动画方面的学习,后学习了PHP,发现可以通过PHP动态生成VRML文档,有点类似于Generator动态生成Flash的方式. 由于VRML博大精深,这里只介绍一个简单的例子,还可以将各种VRML结点存入数据库中,这样的虚拟现实网页将--,爽! 下面是源程序.注意:在服务器上,要将让PHP处理wrl格式的文档,否则后果将是没有任何虚拟现实.本源程序直接存成wrl文件,在浏览器中要安装插件,可以到我的另一个主页上去下载:http://go.163.com/~sjtucaoca