Se vuoi solo inviare la PS1variabile e non contiene una '(virgoletta singola), prova:
ssh targethost -t "PS1='$PS1'; exec bash"
Il locale .bashrcpotrebbe benissimo sovrascrivere PS1(grazie a Dennis Williamson per averlo sottolineato).
Esistono modi per trasmettere variabili di ambiente su ssh , ma in genere sono disabilitate nella configurazione del server. Se la PermitUserEnvironmentdirettiva è abilitata nella configurazione del server e ogni utente ha la propria coppia di chiavi (sì, potresti non essere così fortunato), puoi aggiungere environment="PS1=…"alla riga ~/.ssh/authorized_keyscorrispondente alla tua chiave.
Se desideri mantenere la tua configurazione su un account utente condiviso, puoi creare la tua directory del file di configurazione e impostare la HOMEvariabile di ambiente in modo che punti a quella directory.
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Creare collegamenti simbolici nella mrstatic.homedirectory che punta alla voce corrispondente nella directory principale quando si desidera condividere un file con gli altri utenti.
Quindi, accedi con
ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`
Se sei disposto a modificare il telecomando .profile(o altro file di inizializzazione), probabilmente puoi automatizzare le tue impostazioni. Molti siti consentono LC_*le variabili di ambiente (normalmente vengono utilizzate per le impostazioni locali). Se entrambe queste condizioni sono soddisfatte, è possibile impostare una variabile che non viene effettivamente utilizzata per le versioni locali, ad esempio LC_USERsul lato client, e testarla sul server .profile.
(Naturalmente gli account condivisi sono una cattiva idea, ma mi rendo conto che potresti non essere in grado di cambiare quella situazione.)
"PS1='$PS1' bash -i"(e perché noexec, anche)?