gpt4 book ai didi

bash/zsh 输入过程替换与 while 一起给出语法错误

转载 作者:行者123 更新时间:2023-11-29 08:59:00 24 4
gpt4 key购买 nike

这些工作正常并且做他们应该做的(打印文件 foo 的内容):

cat <foo
while read line; do echo $line; done <foo
cat <(cat foo)

但是这在 zsh 中给我一个语法错误:

zsh$ while read line; do echo $line; done <(cat foo)
zsh: parse error near `<(cat foo)'

和庆典:

bash$ while read line; do echo $line; done <(cat foo)
bash: syntax error near unexpected token `<(cat foo)'

有没有人知道原因和可能的解决方法?

注意:这显然是一个玩具示例。在实际代码中,我需要在主 shell 进程中执行 while 循环体,所以我不能只使用

cat foo | while read line; do echo $line; done

最佳答案

您需要将流程替换重定向到 while 循环中:

你写的

while read line; do echo $line; done <(cat foo)

你需要

while read line; do echo $line; done < <(cat foo)
# ...................................^

将进程替换视为文件名。

关于bash/zsh 输入过程替换与 while 一起给出语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8897097/

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