删除 BASH 续行提示

删除 BASH 续行提示

我长期使用 Linux、Solaris 和 bash,但从未找到解决此问题的方法。这肯定很常见,所以很好奇其他人是否找到了更好的方法。

我正在使用 bash 对 REST API 接口进行一些测试。我使用 curl 命令,然后使用连续字符(例如为每个 HTTP 标头分隔出一个新行)。我将笔记存储在文本文件中,以便可以快速复制/粘贴到 SecureCRT 或任何 SSH 客户端中。

====注释格式====

$ curl xxxxxx \
-H "X-Header1: test" \
-H "X-Header2: test2" \ 
xxxxx

上面的命令我可以直接复制粘贴到 SSH 中,然后按回车键,它就会运行该命令。如果我修改了某些内容,并想将其从 SSH 客户端粘贴回我的笔记中,我会得到连续字符,因为这是 bash 对这些字符的解释方式:

=====在终端=====

$ echo hello \
> world
hello world

看看终端中我们有“>”,因为这是 bash 提示下一行等等的方式。如果您有一堆命令,并且想要一直复制/粘贴,并且带有 12 个不同的标题,那么从每行中删除“>”会很费劲。

我在谷歌上搜索了一下,发现了一些关于类似事情的讨论,比如https://stackoverflow.com/questions/7316107/bash-continuation-lines

我希望在 bash 中可以更改继续提示,我会通过更改环境变量来删除提示,就像 PS1 变量允许您更改命令提示符一样。我还没有找到任何东西。

在 bash 历史记录中,您看不到连续字符,因为它将所有这些字符都删除到一行上(非常难以阅读和编辑)。

因此,这里可能还有其他一些选择:

  1. 找到一个配置来改变继续提示来解决这个问题,或者找到一种使用环境变量来解决这个问题的方法。
  2. 使用另一个不使用此方法或允许修改此方法的 shell。我几乎只使用过 bash,也用过一点 csh。
  3. 执行一些操作,例如重复输入的命令并使用 sed 或其他方法删除 > 字符或回显 .bash_history 条目并在某些点添加换行符以使其可读。

在我去寻找另一种方法之前,有人知道是否有可能用 bash 来完成我所要求的事情吗?

此外,我知道继续提示是有原因的,否则它可能只是一个空白行——我正在寻找一种方法来改变环境变量来来回切换,或类似的东西。

答案1

我的测试表明这个变量是相关的:

PS2
次要提示字符串。默认值为>。以与显示前PS2相同的方式展开。PS1

来源

解决方案(选择一个):

unset PS2
          # or
PS2=''

请注意,您可以导出包含空字符串的变量,但不能导出未设置的变量。如果您愿意,请使用后一种解决方案export PS2

相关内容