bash – 通过命令重定向终端stdout
发布时间:2020-12-15 21:43:50 所属栏目:安全 来源:网络整理
导读:我想要做的只是将执行的命令的stdout重定向到管道.一个例子比我更好地解释它. $echo "Hello world" | cowsay 在cowsay中输出“Hello world”,我想预处理终端的/ bash stdout以通过cowsay $echo "Hello world" 这应该输出与第一个命令相同. 提前致谢. 解决方
我想要做的只是将执行的命令的stdout重定向到管道.一个例子比我更好地解释它.
$echo "Hello world" | cowsay 在cowsay中输出“Hello world”,我想预处理终端的/ bash stdout以通过cowsay $echo "Hello world" 这应该输出与第一个命令相同. 提前致谢. 解决方法
您可以使用进程替换:
#!/bin/bash exec > >(cowsay) echo "Hello world" 但是,有一些警告.如果你在后台开始任何事情,那么牛会等待它完成: #!/bin/bash exec > >(cowsay) echo "Hello world" sleep 30 & # Runs in the background exit # Script exits immediately but no cow appears 在这种情况下,脚本将退出而不输出. 30秒后,当睡眠退出时,奶牛突然出现了. 您可以通过告诉程序在其他地方写入来解决这个问题,这样牛就不必等待它们了: #!/bin/bash exec > >(cowsay) echo "Hello world" sleep 30 > /dev/null & # Runs in the background and doesn't keep the cow waiting exit # Script exits and the cow appears immediately. 如果您没有在后台启动任何内容,那么您的某个工具或程序就可以.要找到哪些,请逐一重定向或评论它们,直到出现奶牛. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |