Algumas opções:
ssh -t [email protected] 'cd /data && exec bash --login -o vi'
(que funciona com todos os shells do tipo POSIX incluindo ksh
/ zsh
/ dash
... pois -o
é uma opção padrão do utilitário sh
POSIX e vi
é um Essa linha de comando também é compatível com shells de todas as principais famílias de shell, incluindo Bourne, csh, rc, fish, portanto, deve funcionar independentemente do shell de login do usuário root de lá)
Ou:
ssh -t [email protected] 'cd /data && exec env SHELLOPTS=vi bash --login'
Na verdade, você não quer usar o segundo. Isso significa que a variável $SHELLOPTS
estará no ambiente e afetará todas as invocações de bash
(e as não interativas herdarão as de invólucros interativos causando todos os tipos de problemas).
Tenha também em atenção que bash
tem dois conjuntos de opções, um que você define com -o
/ $SHELLOPTS
e um que definiu com -O
/ $BASHOPTS
).