ssh <host> <command>
Sözdizimini kullanarak doğrudan bir SSH ana bilgisayarında bir komut çalıştırdığımda .bashrc
, .bash_profile
(veya .profile
) çıktısını görüyorum ancak çıktısını görmedim .
Örneğin, aşağıdaki komutu her iki dosyanın üstüne yerleştirirsem,
echo ${BASH_SOURCE[0]}
ve el ile kaynak .bash_profile
( .bashrc
sırayla hangi kaynaklar ), göreceğim
$ . .bash_profile
.bash_profile
.bashrc
Bu, ssh <host>
komutun biçimini kullanarak SSH aracılığıyla uzaktan bu bilgisayara oturum açıp açmadığımı gördüğüm çıktı . (Ve .bash_profile
geçici olarak başka bir yere koyarsam , bu çizgilerin hiçbiri yankılanmaz.)
Ancak, doğrudan uzak makinede ssh <host> <command>
şeklinde bir komut yürütürsem ssh
, çıktı şöyle görünür:
$ ssh <host> echo foo
/home/rlue/.bashrc
foo
Anladığım kadarıyla .bash_profile
ve arasındaki fark .bashrc
, birincisinin giriş kabukları için , ikincisinin etkileşimli, girişsiz kabuklar için olmasıdır .
Aşağıdakileri tamamladım:
ssh <host>
Sadece kaynakları.bash_profile
ise,ssh <host> <command>
sadece kaynaklar.bashrc
, yani- birincisi bir giriş kabuğu ve ikincisi değil.
Bu sonuçlar doğru mu? Neden ssh <host> <command>
etkileşimli, giriş yapmayan bir kabuk olarak değerlendiriliyor? SSH komutu yürütmek için hala uzak makinede oturum açmıyor mu?
.bashrc
hata verirken, benzer satırlar hata .bash_profile
vermedi. Sorun teşkil eden hatları düzeltmeden önce tutarsızlığı araştırma fırsatı buldum.
.bashrc
? Bu dosyanın çıktı üretmesi gerekmez. 'Den herhangi bir çıktı.bashrc
, taşıma olarak ssh kullanan tüm araçları kırabilir.