如何让 bash find 在同一进程中运行?

Posted

技术标签:

【中文标题】如何让 bash find 在同一进程中运行?【英文标题】:How to make a bash find run in same process? 【发布时间】:2015-09-01 10:01:49 【问题描述】:

代码优先

echo $$ - $BASHPID

find . | while read -r file; do
    echo $$ - $BASHPID: $file
done

问题是while 中的代码在子进程中运行。我怎样才能让它在同一个进程中运行?

【问题讨论】:

【参考方案1】:

只需使用process substitution:

echo "$$ - $BASHPID"

while read -r file; do
    echo "$$ - $BASHPID: $file" #better to quote!
done < <(find .)
# -----^^^^^^^^^

来自给定的链接:

进程替换是一种重定向形式,其中输入或 进程的输出(一些命令序列)显示为临时的 文件。

【讨论】:

以上是关于如何让 bash find 在同一进程中运行?的主要内容,如果未能解决你的问题,请参考以下文章

如何在一个Docker中同时运行多个程序进程?

如何从 Java 中运行的进程中获取 bash 命令退出代码?

在bash中杀死一个进程[重复]

go - 如何在go中打印正在运行的子进程的实时输出?

当我中断 ssh 本身时,如何使 ssh 杀死远程进程?

在运行后台进程时更改分支会发生啥?