是否可以在所有终端输出前添加某个字符?

是否可以在所有终端输出前添加某个字符?

例如,假设我想运行命令 ll:

我的输出看起来像这样:

josh@zeitgeist ~ ll
total 41148
drwxr-xr-x 42 josh josh     4096 Aug  4 22:52 ./
drwxr-xr-x  4 root root     4096 Jul  9 21:18 ../
-rw-rw-r--  1 josh josh  3523718 Jul 11 00:17 2017-07-11-001710_3840x2160_scrot.png

但我希望它看起来像这样:

josh@zeitgeist ~ ll
   total 41148
   drwxr-xr-x 42 josh josh     4096 Aug  4 22:52 ./
   drwxr-xr-x  4 root root     4096 Jul  9 21:18 ../
   -rw-rw-r--  1 josh josh  3523718 Jul 11 00:17 2017-07-11- 001710_3840x2160_scrot.png

我已经知道如何使用 PS1='XXX' 来更改提示符;有没有办法改变显示的输出的每一行,对于每个命令,特别是在终端中(不更改输出并将其放入文件中)?

我想这样做是为了在终端左侧有一条字符缩进线。我目前正在致力于创建一个科幻风格的桌面,我正在做的事情之一是使用终端背景图像在我的无标题、无边框 urxvt 终端窗口周围创建一个独特的、不规则的边框。唯一的问题是我无法弄清楚如何在所有输出的开头添加间距,因为输出紧贴窗口的左边缘,它覆盖了我想要可见的背景的部分。我尝试使用 URxvt internalBorder 和 externalBorder,但它们覆盖了终端底部和右边缘的背景图像。

答案1

这个怎么样。开始一个新的 bash被管道输送到 的进程awk,其中管道输送的每一行都会在 $0 (输入行)之前打印几个空格

$ bash | awk '{print "  " $0}'
$ id
  uid=500(ec2-user) gid=500(ec2-user) groups=500(ec2-user),10(wheel)
$ uname -a
  Linux ip-172-31-37-61 4.9.38-16.33.amzn1.x86_64 #1 SMP Thu Jul 20 01:31:29 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$

相关内容