você pode ativar partes de seu .bashrc
somente se ele não for invocado via ssh
.
por exemplo. algo como:
# within an SSH-session, ${SSH_TTY} will be set
if [ "x${SSH_TTY}" = "x" ]; then
/bin/watch ~/checker.bash
fi
Eu tenho um servidor que, quando é iniciado, uma linha em .bashrc
executa o seguinte comando /bin/watch ~/checker.bash
, que, conforme esperado, assiste a esse comando no início do servidor.
Eu também tenho um cliente que faz o login nessa máquina, mas eu não quero que as sessões do cliente executem o mesmo comando do .bashrc
.
Eu olhei para AcceptEnv
para passar env vars, embora isso requeira configuração do servidor, o que eu quero evitar.
Eu também não quero ter duas contas de usuário diferentes para diferentes .bashrc
's.
Existe outro ângulo para abordar isso?
Duas maneiras:
Não use bash para esta sessão, tente dash (ou / bin / sh):
ssh 127.0.0.1 /bin/dash
Use bash com opções de comando para desativar o processamento de arquivos de inicialização:
ssh 127.0.0.1 "bash --noprofile --norc"
Você pode substituir a linha / bin / watch .... por
if ps ax | grep /bin/watch | grep -v grep > /dev/null 2>&1
then
echo "Nothing to do"
else
/bin/watch ~/checker.bash
fi
ou algo assim.