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已经包含用于检查并返回外壳是否非交互的代码(尽管仍然必须将其产生输出的命令置于其下)。