我想知道是否有办法使用history命令但只列出成功运行的命令。同样,有没有办法列出产生错误的那些?
我知道每个命令都有一个退出状态:
0- 成功执行命令
1- 命令因扩展或重定向期间的错误而失败,退出状态大于零。
2- 命令使用不正确
12- 命令找到但不可执行
127- 命令未找到
并且可以从以下位置检查执行命令echo $?
: http : //www.linuxnix.com/2011/03/find-exit-status-script-command-linux.html
例子:
运行这 4 个命令后:
ls
help
lss
ls nonexistentfile
Run Code Online (Sandbox Code Playgroud)
我尝试测试只打印成功的命令(退出状态为 0),应该只有“ls”和“help”:
for j in `history | tail -5 | head -4 | cut -d ' ' -f5-`; do $j > cmd_out; if [[ `echo $?` != 0 ]]; then :; else echo $j | grep -v 'bash'; fi; done; rm cmd_out
Run Code Online (Sandbox Code Playgroud)
这输出:
ls
help …Run Code Online (Sandbox Code Playgroud)