本站教程收集整理的这篇文章主要介绍了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一起给出了语法错误所遇到的程序开发问题。
如果觉得本站教程网站内容还不错,欢迎将本站教程推荐给好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。