Если ваш sshd не предоставляет полезных переменных, вы можете использовать
ps -p $PPID
или какой-то другой случайный ps трюк (если ваша оболочка не установлена $PPID
), чтобы увидеть, является ли родительский процесс оболочки вашим процессом удаленного входа в систему или нет. Тогда, если родительский-удаленный-штуковый переключатель $ PS1. А затем загрузите OpenSSH и воспользуйтесь рекомендациями geekosaur / Caleb, потому что ваш ssh-сервер является ненужным. ;)
Или вы можете использовать вывод «кто я», взять последнее поле (то есть, $( who am i | awk '$0=$NF')
) и проверить, является ли хост удаленным или локальным, чтобы решить, вошли ли вы локально или удаленно.
Или вы можете включить вывод, $(hostname)
чтобы ваша оболочка использовала соответствующий $ PS1 на определенных хостах.
Или давайте действительно сойдем с ума. Если вы используете современную оболочку, такую как bash, ksh93 или zsh, вы можете воспользоваться тем фактом, что $ PS1 переоценивается после выполнения. Таким образом, вы можете включить встроенный условный блок, чтобы делать сумасшедшие штуки, если ваш cwd находится внутри репозитория, а что-то еще снаружи. Например, здесь я делаю быстрое изменение в зависимости от того, в каком каталоге я использую [[ conditional ]] && $( echo "whatever it should be if true) || $( echo "whatever should be the if-not-true prompt" )
, в основном.
default prompt$ PS1='$(id -un) @ $(hostname)$( [[ $(pwd) = /tmp ]] && echo " [I am in /tmp]" || echo " /not/in/tmp")$ '
myname @ host /not/in/tmp$ cd /tmp
myname @ host [I am in /tmp]$ cd /etc
myname @ host /not/in/tmp$
Конечно, определение $ PS1 в вашем профиле будет выглядеть сумасшедшим, но тогда вы получите супер-красочные git-вещи только тогда, когда на самом деле находитесь в git-репозитории, в то время как у вас есть обычные цвета в других местах. :) Обратите внимание, что вы должны использовать одинарные кавычки вокруг задания PS1. Вы не хотите, чтобы переменные расширились, когда PS1 назначен; Вы хотите, чтобы они расширились, когда $ PS1 будет оценен позже. Итак, одинарные кавычки.