Quando a conexão está lenta, eu me conecto a computadores remotos usando SSH sem alocar um pseudo-terminal (por exemplo, ssh -T [email protected]
ou ssh [email protected] bash
). Embora eu possa usar o shell, o shell não exibe um prompt. Existe uma maneira de fazer o shell exibir um prompt (por exemplo $
) ao conectar via SSH sem um pseudo-terminal?
Eu poderia executar o script bash abaixo no computador remoto, mas gostaria de saber se há algo embutido que eu possa usar para obter um prompt.
#!/bin/bash
# or #!/bin/sh
PS='$ '
prompt() {
printf '%s' "$PS"
read -r line
# Exit if EOF (Ctrl-d).
[ "$?" -ne 0 ] && echo && exit
eval "$line"
}
# Handle Ctrl-c.
trap 'echo && prompt' INT
while :
do
prompt
done
(Adaptado com base em: https://tldp.org/LDP/abs/html/intandnonint.html )
Este script tem a desvantagem de não ser capaz de lidar com entradas de várias linhas.
Obviamente, não resolve todos os problemas que resultam do tty ausente, mas você pode fazer isso: