gpt4 book ai didi

bash - 如何在 bash 函数上使用 stdbuf

转载 作者:行者123 更新时间:2023-11-29 09:29:52 25 4
gpt4 key购买 nike

我们可以在常规命令上使用 stdbuf,例如

stdbuf -o 0 echo aaa

但是我不能在 bash 函数上使用它,例如

function tmpf() { echo aaa; }
stdbuf -o 0 tmpf

这是什么原因?谢谢!

最佳答案

原因是 bash 函数是 bash session 内部的。 stdbuf 和类似的实用程序是独立的程序,无法访问 shell session ,而且实际上对 bash 一无所知。所以它只能运行可执行文件。

因为 bash 有一些小窍门,您可以导出一个 bash 函数——就像导出一个环境变量——这将使在子进程中运行的 bash 进程可以访问该函数。所以你可以这样做:

function tmpf() { echo aaa; }
export -f tmpf
stdbuf -o 0 bash -c 'tmpf'

但即使在那里,您也需要获取 stdbuf 来执行子 bash 才能调用该函数。

关于bash - 如何在 bash 函数上使用 stdbuf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35348559/

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