Sshd'niz faydalı değişkenler sağlamıyorsa,
ps -p $PPID
veya $PPID
kabuğun üst işleminin uzaktan oturum açma işleminiz olup olmadığını görmek için başka bir rastgele ps hilesi (kabuğunuz ayarlanmadıysa ). Sonra üst-uzak-şey-$ PS1 geçiş yaparsanız. Ve sonra OpenSSH'yi indirin ve ssh sunucunuz önemsiz olduğundan geekosaur / Caleb'in önerilerini kullanın. ;)
Ya da, "ben kimim" in çıktısını kullanabilir, son alanı (yani $( who am i | awk '$0=$NF')
) alabilir ve ana bilgisayarın uzak veya yerel olup olmadığını yerel olarak mı yoksa uzaktan mı oturum açtığınıza karar vermek için kontrol edebilirsiniz.
Veya $(hostname)
kabuğunuzun belirli ana bilgisayarlarda uygun $ PS1'i kullanmasını sağlamak için çıktısını açabilirsiniz .
Ya da, gerçekten delirelim. Bash, ksh93 veya zsh gibi modern bir kabuk kullanıyorsanız, $ PS1'in yürütme sırasında yeniden değerlendirilmesinden yararlanabilirsiniz. Yani, cwd'niz depodaysa ve dışarıda başka bir şey varsa, çılgın git öğelerini yapmak için bir satır içi koşullu blok ekleyebilirsiniz. Örneğin, burada [[ conditional ]] && $( echo "whatever it should be if true) || $( echo "whatever should be the if-not-true prompt" )
temelde kullanarak kullandığım dizine bağlı olarak istem değişikliği yapıyorum .
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$
Elbette, $ PS1 tanımı profilinizde çılgın görünecek, ancak daha sonra sadece git deposunda olduğunuzda süper renkli-git-stuff elde edersiniz, başka bir yerde düzenli renkler elde edersiniz. :) PS1 ödevinin etrafında tek tırnak kullanmanız gerektiğini unutmayın. PS1 atandığında değişkenlerin genişletilmesini istemezsiniz; $ PS1 daha sonra değerlendirildiğinde bunların genişletilmesini istiyorsunuz. Yani, tek tırnak.