【问题标题】:Store value returned by background process [not exit status]后台进程返回的存储值[不是退出状态]
【发布时间】:2013-10-15 09:56:57
【问题描述】:

我数着数。文件中的行数作为后台进程(我需要并行执行)

counting="wc -l < abc.xyz" &
`$counting`
counting_process_id=$!
wait $counting_process_id
echo $counting

这只是为 $counting 返回一个空白

当我这样做时,

counting="wc -l < abc.xyz"
`$counting`
echo $counting

即在前台计数。它返回正确的值。

所以我猜这与父 shell 中无法访问的子变量有关? (有些答案建议 IPC)还有其他方法可以解决这个问题。

【问题讨论】:

    标签: bash shell ubuntu-12.04 wc


    【解决方案1】:

    所以我猜这与父级中无法访问的子变量有关 贝壳?

    完全正确。

    一种方法是使用临时文件并从中读取:

    outfile=$(mktemp)
    ( wc -l < abc.xyz ) > "${outfile}" &
    wait
    echo $(<$outfile)
    

    【讨论】:

    • +1 抱歉没有意识到您已经发布了类似的答案 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-01
    • 2015-03-11
    • 2012-01-17
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多