Jeśli chcesz tylko wysłać PS1zmienną, która nie zawiera '(pojedynczego cudzysłowu), spróbuj:
ssh targethost -t "PS1='$PS1'; exec bash"
Lokalny .bashrcmoże PS1jednak nadpisać (dzięki Dennis Williamson za zwrócenie na to uwagi).
Istnieją sposoby przesyłania zmiennych środowiskowych przez ssh , ale zwykle są one wyłączone w konfiguracji serwera. Jeśli PermitUserEnvironmentdyrektywa jest włączona w konfiguracji serwera, a każdy użytkownik ma własną parę kluczy (tak, możesz nie mieć tyle szczęścia), możesz dodać environment="PS1=…"do linii ~/.ssh/authorized_keysodpowiadającą kluczowi.
Jeśli chcesz zachować własną konfigurację na wspólnym koncie użytkownika, możesz utworzyć własny katalog plików konfiguracyjnych i ustawić HOMEzmienną środowiskową tak, aby wskazywała ten katalog.
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Utwórz dowiązania symboliczne w mrstatic.homekatalogu wskazujące odpowiedni wpis w katalogu nadrzędnym, gdy chcesz udostępnić plik innym użytkownikom.
Następnie zaloguj się za pomocą
ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`
Jeśli chcesz zmodyfikować zdalny .profile(lub inny plik inicjujący), prawdopodobnie możesz zautomatyzować swoje ustawienia. Wiele witryn zezwala na LC_*zmienne środowiskowe (zwykle są używane do ustawień regionalnych). Jeśli oba te warunki są spełnione, możesz ustawić zmienną, która nie jest używana w lokalizacjach, powiedzmy LC_USER, po stronie klienta i przetestować ją na serwerze .profile.
(Oczywiście wspólne konta to zły pomysł, ale zdaję sobie sprawę, że możesz nie być w stanie zmienić tej sytuacji).
"PS1='$PS1' bash -i"(i dlaczego nieexecteż)?