相关疑难解决方法(0)

NAME之后是否禁止使用分号?为NAME做...?

bash手册列出了for复合语句的语法

for name [ [ in [ word ... ] ] ; ] do list ; done

这意味着do如果in省略该子句,前面的分号是可选的.[笔记2].

但是,Posix规范仅列出以下三个产品for_clause:

for_clause       : For name linebreak                            do_group
                 | For name linebreak in          sequential_sep do_group
                 | For name linebreak in wordlist sequential_sep do_group
                 ;
Run Code Online (Sandbox Code Playgroud)

作为参考,linebreak是一个可能为空的序列,NEWLINEwhile sequential_sep是分号或a NEWLINE,可能后跟一个序列NEWLINE:

newline_list     :              NEWLINE
                 | newline_list NEWLINE
                 ;
linebreak        : newline_list
                 | /* empty */
                 ;
separator        : separator_op linebreak
                 | …
Run Code Online (Sandbox Code Playgroud)

shell posix language-lawyer

6
推荐指数
1
解决办法
130
查看次数

标签 统计

language-lawyer ×1

posix ×1

shell ×1