f12*_*6ck 10 linux bash shell ubuntu command-line
我想在运行每个bash命令后打印日期.
这可以帮助我理解当我离开键盘时命令执行了多少.
我知道我能做到
`DATE=`date +%d/%m/%Y\ %H:%M:%S` && echo $DATE`
Run Code Online (Sandbox Code Playgroud)
获取日期,但我不知道在bash上执行的每个命令之后如何能够运行此命令.
我也有兴趣在每个命令之前运行相同的命令,这样我就可以知道命令花了多长时间.
可能吗?
我应该编辑哪个文件?
例如:
$ wget google.com
15/07/2017 23:40:05
Run Code Online (Sandbox Code Playgroud)
我很高兴,如果我还能介绍以下这个特色:
$ wget google.com
15/07/2017 23:40:05 15/07/2017 23:40:11
Program run for 00:00:06
Run Code Online (Sandbox Code Playgroud)
第一个日期是我运行程序的时候,第二个是程序终止时第三个是自我解释的.
如你所知,我不想每次都打字
$ wget google.com && `DATE=`date +%d/%m/%Y\ %H:%M:%S` && echo $DATE`
Run Code Online (Sandbox Code Playgroud)
要在输入每个命令之前执行cmd,请在DEBUG上设置陷阱.例如.
trap date DEBUG
Run Code Online (Sandbox Code Playgroud)
要在发出提示之前执行该命令,请设置PROMPT_COMMAND:
PROMPT_COMMAND=date
Run Code Online (Sandbox Code Playgroud)
这正是这样做的:
PROMPT_COMMAND+=$'\n'"date +%d/%m/%Y\ %H:%M:%S"
Run Code Online (Sandbox Code Playgroud)
PROMPT_COMMAND 中的字符串在每个命令之后都会被评估。您只需要将 date 命令添加到您已有的任何内容中。($'\n' (换行符)是一个比;连续两次;会给你一个语法错误更强大的连接器)
| 归档时间: |
|
| 查看次数: |
2623 次 |
| 最近记录: |