用于忽略 .bashrc 脚本的 SSH 参数

用于忽略 .bashrc 脚本的 SSH 参数

我有一个服务器,它.bashrc在启动时执行此行:/bin/watch ~/checker.bash。正如预期的那样,它会在服务器启动时监视该命令。

我还有一个登录该计算机的客户端,但我不希望客户端的会话从.bashrc.

我已经研究过AcceptEnv传递环境变量,尽管它需要配置服务器,这是我想避免的。

我也不想为不同的.bashrc用户拥有两个不同的用户帐户。

还有其他角度可以解决这个问题吗?

答案1

两种方式:

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

ssh 127.0.0.1 /bin/dash

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

ssh 127.0.0.1 "bash --noprofile --norc"

答案2

.bashrc仅当未通过 调用时,您才可以激活您的部分内容ssh

例如:

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

答案3

您可以将 /bin/watch .... 行替换为

 if ps ax | grep /bin/watch | grep -v grep  > /dev/null 2>&1
 then
    echo "Nothing to do"
 else
    /bin/watch ~/checker.bash
 fi

或类似的东西。

相关内容