8 我有一台服务器,当它启动时,其中的一行会.bashrc执行以下命令/bin/watch ~/checker.bash,如预期的那样,服务器启动时会监视该命令。 我也有一个登录到该计算机的客户端,但是我不希望客户端的会话从中执行相同的命令.bashrc。 我已经看过AcceptEnv传递环境变量,尽管它需要配置服务器,但我想避免这种情况。 我也不想为不同的使用2个不同的用户帐户.bashrc。 还有其他角度可以解决这个问题吗? ssh bashrc — ljs.dev source 您为什么不想要两个不同的帐户?所有的“客户端”(这似乎是一个不相关的第三方)应进行隔离(也由你自己) — umläute
5 .bashrc仅当未通过调用时,才可以激活您的部分内容ssh。 例如: # within an SSH-session, ${SSH_TTY} will be set if [ "x${SSH_TTY}" = "x" ]; then /bin/watch ~/checker.bash fi — umläute source 就像魅力一样,这里的所有答案都教给我很多东西。非常感激! — ljs.dev
13 两种方式: 不要在此会话中使用bash,请尝试使用破折号(或/ bin / sh): ssh 127.0.0.1 /bin/dash 使用带有命令选项的bash禁用处理启动文件: ssh 127.0.0.1 "bash --noprofile --norc" — 丹·加思韦特 source 你有没有尝试过?(尤其是#2)? — umläute 1 第二种方法只是挂在我身上。 — slm 5 第二种方法非常适合我。由于未设置PS1,因此看不到提示,这是按要求执行的副作用。 — Dan Garthwaite 两者都为我吊死 — Aditya Mittal @AdityaMittal如果您由于没有PS1提示而正在调用交互式会话,则两者都似乎挂起。尝试输入'ls /' — Dan Garthwaite
2 您可以将/ 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 或类似的东西。 — 马吕斯·马图蒂亚 source 太好了。在这种情况下,我可能有多个运行watch命令的外壳程序,但是我喜欢该解决方案。 — ljs.dev