Zrozumiałem, .bash_profile
że zawsze będzie się przywoływać przy użyciu loginu SSH.
Nie widzę jednak włączonych różnych ustawień, chyba że wykonam następujące czynności:
ssh $host "source ~/.bash_profile ; echo $PATH "
.:/mnt/spark-1.4.1/bin:/mnt/spark-1.4.1/sbin:/mnt/scala-2.11.2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Kiedy po prostu to robię:
ssh $host "echo $PATH "
Informacje o ŚCIEŻCE są tylko domyślnymi
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Użytkownik jest rootem, a domyślną powłoką jest bash.
$ ll /bin/sh
lrwxrwxrwx 1 root root 4 Aug 6 19:54 /bin/sh -> bash
Aktualizacja powłoki root'a to bash
grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
ssh $host "echo $PATH"
wywoła echo lokalnego komputera / konta$PATH
, ponieważ podwójne cudzysłowy nie blokują rozwijania parametrów ani rozszerzania tyldy, więc te rzeczy są rozwijane na lokalnym komputerze przed wykonaniemssh
polecenia. Jeśli chcesz zobaczyć$PATH
maszynę, na której SSHing, musisz użyć pojedynczych cudzysłowów wokół polecenia zdalnego:ssh $host 'echo $PATH'