我希望能够通过某个命令管理所有 bash 终端命令(除了对某人恶作剧之外没有其他充分的理由)。我只想将任何已执行命令的标准输出通过管道传输到预先确定的程序中,而不做任何特别的事情。
例如:如果该预定程序是cowsay
echo "Hello World"
应该输出
_____________
< Hello World >
-------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
我怎样才能做到这一点?(我想用来对他人恶作剧的一些有趣的程序包括rev
、cowsay
和lolcat
)
在哪里
COMMAND
,rev
或lolcat
其他。这不适用于cowsay
.例如
解释:
exec
通常用另一个进程替换当前的 shell,但是如果你只是给它一个重定向,就像在这种情况下,重定向将发生在当前的 shell 上。>
重定向标准输出>(COMMAND)
输入COMMAND
请注意,如果您有
PROMPT_COMMAND
,则应将其定向到 stderr 以避免重定向的标准输出。