Bash
在沒有偽終端的情況下使用 SSH 時如何顯示 bash 提示?
當連接速度很慢時,我使用 SSH 連接到遠端電腦而不分配偽終端(例如
ssh -T user@example.com
或ssh 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