Linux 为什么在.bashrc中使用echo会导致rcp无效?
我最近一直在写“剧本”该项目旨在隔离和改进我们需要的所有bash shell工具和第三方软件版本的可维护性,以便您从Linux 为什么在.bashrc中使用echo会导致rcp无效?,linux,ssh,echo,rcp,Linux,Ssh,Echo,Rcp,我最近一直在写“剧本”该项目旨在隔离和改进我们需要的所有bash shell工具和第三方软件版本的可维护性,以便您从.bashrc中获取这些工具的源代码,例如/opt/dev/scripts/tools.sh,并获取软件版本等的所有最新环境变量。作为本练习的一部分,我认为这是一个好主意在tools.sh中打印消息,显示脚本的当前版本,即 echo "************* Running Scripts version $SCRIPTS_VERSION *************" 问题是
.bashrc
中获取这些工具的源代码,例如/opt/dev/scripts/tools.sh
,并获取软件版本等的所有最新环境变量。作为本练习的一部分,我认为这是一个好主意在tools.sh
中打印消息,显示脚本的当前版本,即
echo "************* Running Scripts version $SCRIPTS_VERSION *************"
问题是这样做之后。包括rcp
在内的所有工具都会显示此消息,rcp
不起作用。为什么?修复该问题的唯一方法是仅当脚本从终端执行时才打印消息,而不是从ssh、rcp等其他终端执行
# only show version if running from a console, print only when
# parent contains 'terminal'
PARENT=`ps --no-heading -o %c -p $PPID`
if [ `echo $PARENT | grep 'terminal'` ]; then
echo "************* Running Scripts version $SCRIPTS_VERSION *************"
fi
如果my
.bashrc
使用echo
打印消息,有人能解释为什么rcp
停止工作吗?请尝试将信息打印为标准错误:echo…>&2
可能的重复实际上可能的重复看起来非常相似。。。但是,在本例中,rcp
tool,或者?