当连接速度较慢时,我使用 SSH 连接到远程计算机,而不分配伪终端(例如或)。虽然我可以使用 shell,但 shell 不显示提示。有没有办法让 shell在没有伪终端的情况下通过 SSH 连接时显示提示(例如)?ssh -T [email protected]
ssh [email protected] bash
$
我可以在远程计算机上运行下面的 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)
该脚本的缺点是它无法处理多行输入。
答案1
它显然不能解决由于丢失 tty 而导致的所有问题,但你可以这样做:
ssh -T [email protected] bash -i