Answers:
由于a .bashrc
用于非登录外壳程序,因此避免了任何回显到屏幕的命令。我也遇到过一些经验,在.bashrc
这些经验中,echo语句将导致sftp和rsync命令失败(甚至还有scp命令)。
# Print some information as we log in
# -s: OS Name -n: Node name -r: OS Release
uname -snr
uptime
另外,通常不会从非交互式shell运行ssh-agent。所以我有这个.bash_profile
。
if [ -f ~/.ssh/ssh-agent ]; then . ~/.ssh/ssh-agent; fi
.bashrc
,解决方案是将此类命令置于检查外壳是否是交互式的代码,并仅在外壳是否交互式的代码下进行。用户.bashrc
在Ubuntu中/etc/skel/.bashrc
创建帐户时以及系统范围内复制的默认文件/etc/bash.bashrc
已经包含用于检查并返回外壳是否非交互的代码(尽管仍然必须将其产生输出的命令置于其下)。