欢迎光临
我们一直在努力

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

本站教程收集整理的这篇文章主要介绍了bash / zsh输入进程替换与while一起给出了语法错误,本站教程本站觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

vps云服务器

但是这给了我zsh中的语法错误:

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

和bash:

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一起给出了语法错误全部内容,希望文章能够帮你解决bash / zsh输入进程替换与while一起给出了语法错误所遇到的程序开发问题。

如果觉得本站教程网站内容还不错,欢迎将本站教程推荐给好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。