ZSH中替代Bash read命令:脚本转换parse error问题求助
ZSH循环语法错误修复
你的问题出在ZSH对for循环的语法要求上——ZSH强制要求do关键字必须与循环条件用分号或换行分隔,而你的代码里${!gresults[@]}后直接跟do,没有分隔符,导致语法解析失败,错误提示指向后续的read命令(因为解析器没正确识别循环结束)。
修复方式有两种:
方式一:添加分号分隔
for i in ${!gresults[@]}; do echo $i ${gresults[$i]} done read user_pick
方式二:将do单独换行
for i in ${!gresults[@]} do echo $i ${gresults[$i]} done read user_pick
两种写法都能让ZSH正确解析循环结构,解决parse error near read的问题。
内容的提问来源于stack exchange,提问作者Seth Wilson
相关产品推荐
相关产品推荐

