gpt4 book ai didi

bash - 为什么 `for i do cmd; done` 中不需要分隔符

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

<分区>

for i do echo $i; done

这怎么合法? (我希望它能用一个额外的分号 for i; do echo $i; done 编写)它适用于 bash、dash、zsh 和 ksh。标准(我指的是 http://pubs.opengroup.org/onlinepubs/9699919799/ )规定:

The for loop requires that the reserved words do and done be used to
delimit the sequence of commands. The format for the for loop is as follows:

for name [ in [word ... ]]
do
compound-list
done

很明显,当省略“in word”时,do 用作分隔符。所以这意味着 [ in [word .. ]] 之后的分隔符(换行符)实际上属于右括号内。有人能指出标准中的任何内容来证明这种 (IMO) 可怕的语言滥用是合理的吗?

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