Si vous souhaitez simplement envoyer la PS1variable et qu'elle ne contient pas de '(guillemet simple), essayez:
ssh targethost -t "PS1='$PS1'; exec bash"
Le local .bashrcpourrait bien écraser PS1cependant (merci à Dennis Williamson de l' avoir signalé).
Il existe des moyens de transmettre des variables d'environnement via ssh , mais elles sont généralement désactivées dans la configuration du serveur. Si la PermitUserEnvironmentdirective est activée dans la configuration du serveur et que chaque utilisateur a sa propre paire de clés (oui, vous pourriez ne pas être aussi chanceux), vous pouvez ajouter environment="PS1=…"à la ligne en ~/.ssh/authorized_keyscorrespondant à votre clé.
Si vous souhaitez conserver votre propre configuration sur un compte d'utilisateur partagé, vous pouvez créer votre propre répertoire de fichiers de configuration et définir la HOMEvariable d'environnement pour pointer vers ce répertoire.
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Créez des liens symboliques dans le mrstatic.home répertoire pointant vers l'entrée correspondante dans le répertoire parent lorsque vous souhaitez partager un fichier avec les autres utilisateurs.
Connectez-vous ensuite avec
ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`
Si vous souhaitez modifier la télécommande .profile(ou un autre fichier d'initialisation), vous pouvez probablement automatiser vos paramètres. De nombreux sites autorisent LC_*les variables d'environnement (normalement, elles sont utilisées pour les paramètres régionaux). Si ces deux conditions sont remplies, vous pouvez définir une variable qui n'est pas réellement utilisée pour les paramètres régionaux, par exempleLC_USER , côté client, et la tester sur le serveur .profile.
(Bien sûr, les comptes partagés sont une mauvaise idée, mais je me rends compte que vous n'êtes peut-être pas en mesure de changer cette situation.)
"PS1='$PS1' bash -i"(et pourquoi pasexecaussi)?