小编jus*_*alf的帖子

如何防止终止命令以将 EOF 发送到命名管道?

我面临的问题正是这个:http : //www.linuxmisc.com/4-linux/d7863c256bccbfb6.htm

我希望能够运行一个接受 stdin 的程序,并在需要时向其中写入数据。我可以使用 fifo 命名管道来做到这一点。例如:

txtplay < named_pipe.fifo

echo "Hello World" > named_pipe.fifo

但是,这样做的缺点是第一个命令在第二个命令完成后退出。我想要的是相同的:

txtplay

实际上,这样我就可以随时保留我的数据,而不必担心它会看到文件结尾。不幸的是,我不能简单地这样做,因为我希望在程序看到数据之前通过过滤器处理发送给它的数据。

为什么每次我想向它发送数据时都不加载程序?太慢了。

基本上,我想要的是一种将给定命令的输出重定向到 fifo 命名管道的方法,而无需文件结尾。当我在做的时候,这个 EOF 业务是如何运作的?是不是有特殊的“EOF”命令,还是没有收到数据,或者原来输出数据的程序退出了?

有什么解决办法吗?

bash fifo

5
推荐指数
1
解决办法
6171
查看次数

Bash 时间命令输出与环境变量分配不同

通常,该time命令输出三行:

> time sleep 2
real    0m2.003s
user    0m0.000s
sys     0m0.006s
Run Code Online (Sandbox Code Playgroud)

然而,当前面加上变量赋值时,输出变成一行:

> VAR="" time sleep 2
0.00user 0.00system 0:02.00elapsed 0%CPU (0avgtext+0avgdata 2060maxresident)k
0inputs+0outputs (0major+86minor)pagefaults 0swaps
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?有没有办法在保持变量赋值的同时将输出分成三行?

bash time

3
推荐指数
1
解决办法
673
查看次数

标签 统计

bash ×2

fifo ×1

time ×1