当连接速度很慢时,我使用 SSH 连接到远程计算机而不分配伪终端(例如ssh -T [email protected]
或ssh [email protected] bash
)。虽然我可以使用 shell,但 shell 不显示提示。$
在没有伪终端的情况下通过 SSH 连接时,有没有办法让 shell 显示提示符(例如)?
我可以在远程计算机上运行下面的 bash 脚本,但我想知道是否有内置的东西可以用来获得提示。
#!/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
(改编自:https ://tldp.org/LDP/abs/html/intandnonint.html )
这个脚本的缺点是它不能处理多行输入。
它显然不能解决丢失 tty 导致的所有问题,但您可以这样做: