SSH 参数忽略 .bashrc 脚本

ljs*_*dev 10 ssh bashrc

我有一个服务器,当它启动时,一行.bashrc执行以下命令/bin/watch ~/checker.bash,该命令在服务器启动时按预期监视该命令。

我也有一个登录到那台机器的客户端,但我不希望客户端的会话从.bashrc.

我已经查看AcceptEnv了传递环境变量的方法,尽管它需要配置服务器,我想避免这种情况。

我也不想为不同.bashrc的2 个不同的用户帐户。

有没有另一个角度来解决这个问题?

Dan*_*ite 18

两种方式:

不要在此会话中使用 bash,请尝试使用 dash(或 /bin/sh):

ssh 127.0.0.1 /bin/dash
Run Code Online (Sandbox Code Playgroud)

使用带有命令选项的 bash 来禁用处理启动文件:

ssh 127.0.0.1 "bash --noprofile --norc"
Run Code Online (Sandbox Code Playgroud)

  • 第二种方法非常适合我。您看不到提示,因为未设置 PS1,这是按要求执行的副作用。 (5认同)

uml*_*ute 6

你可以激活你的部分.bashrc,只有当它不通过调用ssh

例如:

# within an SSH-session, ${SSH_TTY} will be set
if [ "x${SSH_TTY}" = "x" ]; then
  /bin/watch ~/checker.bash
fi
Run Code Online (Sandbox Code Playgroud)