Se vuoi solo inviare la PS1
variabile e non contiene una '
(virgoletta singola), prova:
ssh targethost -t "PS1='$PS1'; exec bash"
Il locale .bashrc
potrebbe 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 PermitUserEnvironment
direttiva è 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_keys
corrispondente 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 HOME
variabile di ambiente in modo che punti a quella directory.
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Creare collegamenti simbolici nella mrstatic.home
directory 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_USER
sul 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)?