在不执行远程主机上的bash_profile文件的情况下将文件SCP到远程主机

4
我有一台主机,其.bash_profile文件包含一些用户提示(bash read命令),在读取了用户输入后,它会基于输入执行一些命令。这个功能完美运行。
现在当我尝试向这个主机传输文件时,它会执行.bash_profile(因为scp首先会ssh进入远程主机),然后它会提示用户输入,最终导致scp失败。 我想要的是在有人尝试向此主机传输文件时跳过执行.bash_profile(个人认为这是不可能的),或者知道有人正在尝试通过.bash_profile进行scp(在.bash_profile中捕捉这种情况),并相应地跳过某些命令。
谢谢!
1个回答

3

我在Unix站点上找到了一个类似问题的答案,解决方法如下:在.bashrc.bash_profile文件的顶部添加以下行:

https://unix.stackexchange.com/a/18647/19434

# If not running interactively, don't do anything
[[ $- == *i* ]] || return

可能也会感兴趣的是Mark Hudson关于将输出限制为.bash_profile而不是.bashrc的想法。我的.bashrc文件来源于.bash_profile,所以我可能无意中自己给自己惹麻烦了。 - Steve HHH
这在一个出现问题的红帽 Fedora 上非常有效,但对于 Ubuntu 服务器从未需要过这样的东西。谢谢! - Gubatron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接