shell - 缩进终端/shell 输出

标签 shell terminal command-prompt

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

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

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

然而,在使用了几个月之后,我发现很难轻易地看一眼终端就知道是什么。

我的想法是缩进所有输出会有所帮助。我知道我也可以更改颜色,但我想同时使用这两种解决方案。

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

我想做什么

$ some_command_that_outputs_text 所有输出行都缩进 2 个空格... 所有输出行都缩进 2 个空格... 所有输出行都缩进 2 个空格... 所有输出行都缩进 2 个空格... $ another_terminal_prompt 更多行缩进 2 个空格... 更多行缩进 2 个空格... 更多行缩进 2 个空格... 更多行缩进 2 个空格...

更新时间:2014-10-24

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

最佳答案

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

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

或者如果您的 sed 实现不支持 -r 标志,则使用它:

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

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

$ 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
$

关于shell - 缩进终端/shell 输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26509849/

相关文章:

shell - 使用shell按字母顺序对多行记录进行排序

python - 无法从 python 命令提示符安装任何 python 包

macos - 在 mac 提示符 "Permission denied"上运行脚本

windows - 如何使用 Windows 命令行更改目录

for-loop - 批处理文件,For 循环不回显行

bash - 如何将可选参数传递给 bash 脚本中的另一个命令?

bash - 将命令行选项传递给 bash 中调用的脚本

unicode - Go 中是否有等同于 wcwidth() 函数的函数?

java - 如何清理 Runtime.exec() 中使用的用户输入?

Windows 命令提示符 : How to pass multi-line string parameters