linux - 输入 SSH 命令不会换行

标签 linux shell ssh

虽然通过 SSH(即 rsync copy)输入了一个很好的长命令,但当我点击屏幕的右边缘时,该行不会换行,只是与当前行重叠.关于为什么会发生这种情况以及如何解决的任何建议?

设置如下(和示例命令)。

Debian6 64 位 - 它是一个 DOMU VM (XEN)

/test/test-srv 发布]$ rsync -avzh --dry-run/test/long/source/path/blah/blah/blah//test/long/target/path/etc/etc/etc/etc/etc/etc/test

粗体部分是重叠的部分,它应该只是将 cmd 提示推到一行。

图片示例:

enter image description here

最佳答案

这是因为您的彩色提示。您忽略了将 ANSI 转义码标记为不可见。

Bash 不知道您的终端在做什么,因此它依赖于您告诉它提示符的哪些部分是非打印的,哪些不是。您可以通过在它们周围添加 \[\] 来做到这一点。

# Example bad prompt which wraps lines incorrectly like you describe
PS1='\033[01;34m\w \$ \033[00m'

这里,\033[01;34m\033[00m 不会出现在终端上(也就是说,它们不会移动光标) , 他们只是改变了下面文本的颜色。为了展示这一点,我们将它们包装在 \[\] 中:

# Prompt from above that wraps correctly
PS1='\[\033[01;34m\]\w \$ \[\033[00m\]'

关于linux - 输入 SSH 命令不会换行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22799013/

相关文章:

linux - hudson : Scheduling a build without a tag and generate a report

linux - 通过 SSH 将一个文件夹 tar 成多个文件

ssh - 有人可以用简单的方式解释 SSH 隧道吗?

ios - libssh2 代理转发不工作

python - 如何在 64 位 Linux 上构建 32 位 python 2.6?

linux - 一次将存储库代码部署到多台机器

linux - 获取一段时间内目录中所有文件系统操作的计数

linux - 如何在我的 Linux shell 脚本中遍历此 FIND 命令的结果?

linux - Nagios 插件监控日志文件中的多个单词

linux - 我应该使用什么 Linux shell?