现在的Linux/UNIX命令越来越丰富,我们平时执行命令时若使用不当,命令就会自己输出使用指导(usage)到屏幕。由于命令参数众多,经常会输出一屏多的帮助信息,人眼看起来有点花。你可能想到用grep来找到你关系的参数,如:
openssl ca -abc | grep gencrl
但出乎意料的是,结果又输出了一屏的帮助信息。为什么grep没起作用呢,这是因为很多命令都把帮助手册输出到了错误设备上(stderr),而‘|’只是把命令的标准输出(stdout)重定向到grep的标准输入(stdin)上了(管道)。
其实解决方法很简单,就是把命令的错误输出也重定向到标准输出就行了:
openssl ca -abc 2>&1 | grep gencrl
OK这回应该只输出你想要的那行了(只包含‘gencrl’字符串的那行)。