Bash

在沒有偽終端的情況下使用 SSH 時如何顯示 bash 提示?

  • November 10, 2021

當連接速度很慢時,我使用 SSH 連接到遠端電腦而不分配偽終端(例如ssh -T user@example.comssh user@example.com 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 導致的所有問題,但您可以這樣做:

ssh -T user@example.com bash -i

引用自:https://unix.stackexchange.com/questions/676880