缩进终端/外壳输出

时间:2014-10-22 14:25:49

标签: shell terminal command-prompt

我已经广泛定制了终端提示的外观/感觉,以便输出以下内容(用于开发工作):

== [~/current/path] (git_branch_name) $

当我查看大型文字博客时,我使用==来帮助识别提示行。

然而,在使用这几个月之后,我发现很难轻易浏览终端并知道它是什么。

我认为缩进所有输出会有所帮助。我知道我也可以改变颜色,但想要使用这两种解决方案。

但我不知道如何缩进发送到终端的所有输出。 MAN页面对我没有帮助,我在谷歌上找不到多少。

我想做什么

$ some_command_that_outputs_text All lines of output are indented 2 spaces... All lines of output are indented 2 spaces... All lines of output are indented 2 spaces... All lines of output are indented 2 spaces... $ another_terminal_prompt More lines are indented 2 spaces... More lines are indented 2 spaces... More lines are indented 2 spaces... More lines are indented 2 spaces...

更新时间:2014-10-24

请注意,我已经为我的终端定制了我的配色方案以及提示本身。我发现配色方案不足以让我个人找到我的命令,因为很多文本本身都有与我的提示本身相似的颜色。

2 个答案:

答案 0 :(得分:4)

在您当前的bash中,您可以执行以下操作:

exec 1> >(sed -r 's/^(.*)/  \1/g')

如果您的sed实施不支持-r标记,请使用该标记:

exec 1> >(sed 's/^/ /')

将标准输出文件描述符(stdout)重定向到sed,这会向outout的每一行添加两个换行符。尝试使用:

$ ls -l
  total 0
  drwxr-xr-x 2 root root 40 Oct 22 16:35 dir
  -rw-r--r-- 1 root root  0 Oct 22 16:59 file
$

答案 1 :(得分:-2)

您可以使用tput将光标移动到绝对位置。

tput cup x y

其中,x和y是回显输出之前的行和列位置。

man tput

详情。