gpt4 book ai didi

sh - 在 sh 中逐行读取命令输出(无 bash)

转载 作者:行者123 更新时间:2023-12-04 13:25:07 39 4
gpt4 key购买 nike

我基本上正在寻找一种方法来做到这一点

list=$(command)
while read -r arg
do
...
done <<< "$list"

使用 sh 而不是 bash。由于最后一行,代码无法运行:
syntax error: unexpected redirection

任何修复?

编辑:我需要编辑变量并在循环外访问它们,因此使用 | Not Acceptable (因为它创建了一个具有独立作用域的子 shell )

编辑 2:这个问题与 Why does my Bash counter reset after while loop 不相似因为我没有使用 | (正如我刚刚在上次编辑中注意到的那样)。我要求另一种方式来实现它。 (链接问题的答案仅解释了问题发生的原因,但没有提供任何适用于 和 sh(无 bash) 的解决方案。

最佳答案

在 POSIX sh 中没有纯粹的语法方法可以做到这一点.您需要使用临时文件来输出命令,或者使用命名管道。

mkfifo output
command > output &

while read -r arg; do
...
done < output
rm output

关于sh - 在 sh 中逐行读取命令输出(无 bash),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32071988/

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