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

代码优先

echo $$ - $BASHPID

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

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

【问题讨论】:

    标签: bash find


    【解决方案1】:

    只需使用process substitution:

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

    来自给定的链接:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      • 2019-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      • 2014-07-08
      相关资源
      最近更新 更多