Якщо ви просто хочете надіслати PS1змінну, і вона не містить '(однієї лапки), спробуйте:
ssh targethost -t "PS1='$PS1'; exec bash"
Місцеві .bashrcцілком можуть перезаписатись PS1(дякую Деннісу Вільямсону за те, що вказав на це).
Існують способи передачі змінних середовища через ssh , але вони зазвичай відключені в налаштуваннях сервера. Якщо PermitUserEnvironmentдиректива ввімкнена в конфігурації сервера і у кожного користувача є своя пара ключів (так, можливо, вам не пощастить), ви можете додати environment="PS1=…"до рядка ~/.ssh/authorized_keysвідповідно до вашого ключа.
Якщо ви хочете зберегти власну конфігурацію в спільному обліковому записі користувача, ви можете створити свій власний каталог файлів конфігурації та встановити HOMEзмінну середовища для вказівки на цей каталог.
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Створіть у mrstatic.homeкаталозі символьні посилання, що вказують на відповідний запис у батьківському каталозі, коли ви хочете поділитися файлом з іншими користувачами.
Потім увійдіть за допомогою
ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`
Якщо ви бажаєте змінити віддалений .profile(або інший файл ініціалізації), ви, ймовірно, можете автоматизувати свої налаштування. Багато сайтів дозволяють LC_*змінювати змінні середовища (зазвичай вони використовуються для налаштувань локалі). Якщо обидва ці умови виконані, ви можете встановити змінну, яка насправді не використовується для локалів, скажімо LC_USER, на стороні клієнта, і протестувати її на сервері .profile.
(Звичайно, загальні облікові записи - це погана ідея, але я розумію, що ви можете не в змозі змінити цю ситуацію.)
"PS1='$PS1' bash -i"(а чому б і ніexec, теж)?