&3 本质上,我希望我的脚本生成一个程序(在本例中为 cat)并能够通过文件描述符向其发送输入-6ren">
gpt4 book ai didi

linux - Bash 脚本 : permanent pipe

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:41 25 4
gpt4 key购买 nike

这是我尝试编写的脚本:

#!/bin/bash

cat <&3 & # runs in background, takes input from file desc 3
echo "To Terminal"
...
echo "To cat" 1>&3
echo "to cat again" 1>&3

本质上,我希望我的脚本生成一个程序(在本例中为 cat)并能够通过文件描述符向其发送输入。

这不起作用(“错误的文件描述符”),我认为是因为文件描述符必须与真实文件相关联。然后我需要的是能够创建一个带有关联描述符(例如 3)的永久管道,我可以使用它在整个程序中写入 cat。我该怎么做?

最佳答案

尝试:

#!/bin/bash
exec 3> >(cat)
echo "To Terminal"
echo "To cat" 1>&3
echo "To cat again" 1>&3
exec 3>&-

cat 当然不会做任何有趣的事情。对于一个仍然简单但稍微更有趣的输出的示例,将 cat 替换为 awk:

exec 3> >(awk '{print NR,length($0),$0}')

关于linux - Bash 脚本 : permanent pipe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28643392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com