我scp来自远程主机的简单文件(实际上是本地运行的虚拟机,但这无关紧要)失败,没有显示任何错误消息,但显然没有复制所需的文件:
scp myuser@myhost:~/.bashrc ~/.bashrc.ubuntu
它唯一显示的是
================================================================================
我认为这很奇怪,因为这是我在遥控器上的登录问候语中显示的第一行,如下所示:
================================================================================
Welcome to <Ubuntu 12.04.2 LTS>
You are <myuser> logged into <hostname> (my_ipaddress)
Today is <Wed Aug 28 16:48:49 EDT 2013>
================================================================================
Run Code Online (Sandbox Code Playgroud)
以下.bashrc是定义该问候语的遥控器上的内容:
1 if [ -f ~/.bash_aliases ]; then
2 . ~/.bash_aliases
3 fi
4
5
6 export PS1='\w@\t>'
7
8 set -o vi
9
10 printf %80s |tr " " "="
11 echo
12
13 echo "Welcome to <"`lsb_release -d | sed 's/Description\:\s*//'`">"
14
15 export IPADDR=`hostname -I`
16
17 echo "You are <"$LOGNAME"> logged into <"$HOSTNAME"> ("$IPADDR")"
18
19 echo "Today is <"`date`">"
20
21
22 printf %80s |tr " " "="
23 echo
Run Code Online (Sandbox Code Playgroud)
一旦我从远程 .bashrc 上的 9 中删除了所有内容,scp 就成功了。
谁能解释一下这个奇特的事件?本地主机是Mac OS Mountain Lion,远程(VM)是Ubuntu 12.04.
在此线程的帮助下,我认为问候语中的特殊字符是问题所在,.bashrc除非我们处于交互模式,否则应该返回。所以我在遥控器上的 .bashrc 的开头添加了以下内容:
# If not running interactively, don't do anything
if [[ $- != *i* ]]; then return; fi
Run Code Online (Sandbox Code Playgroud)
这解决了问题,我能够使用 scp
| 归档时间: |
|
| 查看次数: |
3081 次 |
| 最近记录: |