unix 如何在bash shell中设置输出前的空行?

xj3cbfub  于 2022-11-04  发布在  Unix
关注(0)|答案(3)|浏览(237)

我有这个:

  1. $ any_command
  2. any_command: command not found

但我需要这个

  1. $ any_command
  2. any_command: command not found

PS1添加了什么?

wz1wpwve

wz1wpwve1#

您可以使用trap命令和DEBUG信号执行此操作:

  1. trap 'echo' DEBUG

这将在任何命令输出之前打印一个换行符。

  1. $ any_command
  2. bash: any_command: command not found
  3. $

或者:

  1. $ date
  2. Tue Sep 29 17:51:38 EDT 2015
  3. $
展开查看全部
xkftehaa

xkftehaa2#

PS1换行提示

GNU Bash手册中有一节是关于提示的。换行符转义符可能就是你要找的。例如:

  1. export PS1='\n$ '

或者,您可以在命令之前或之后添加一个回显。例如:
回声foo
喷火

使用PROMPT_COMMAND插入任意输出

您可以使用Bash shell的PROMPT_COMMAND变量自动执行额外的回显(或其他屏幕输出)。PROMPT_COMMAND并不局限于提示,但在这种情况下,它当然可以用来完成您想要的任务。例如:

  1. # call echo before issuing PS1
  2. export PROMPT_COMMAND='echo'
  3. # print the equals sign 80 times before issuing PS1
  4. export PROMPT_COMMAND="printf '=%.0s' {1..80}"
展开查看全部
epggiuax

epggiuax3#

我也想要一种方法来实现这一点--帮助在视觉上区分提示符和其他命令输出(特别是当我不能这样做的时候,颜色并不总是一个选项)--这就是我想到的:

  1. export PROMPT_COMMAND="echo; trap 'echo; trap - DEBUG' DEBUG"

首先,echo在提示符之前运行,然后我们设置陷阱,它在提示符后换行,同时删除陷阱,至少直到下一次运行提示符命令。
现在说这是不是一个好主意还为时过早!但它是有效的:

  1. root@epyc:~# seq 1 5
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. root@epyc:~#

相关问题