到目前为止,我还认为外壳中的分号(以某种方式)与换行符具有相同的含义。所以我很惊讶
alias <name>=<replacement text>; <name>
<name>
在下一行中已知时未知。csh
,tcsh
,sh
,ksh
和bash
相同的行为。至少因为csh
直接使用别名或脚本是在semccolon之前来源的,这无关紧要-别名在后面不知道,;
但在下一个命令行中是已知的。这是错误还是此行为的目的?
“我认为外壳中的分号(在某种程度上)与换行符具有相同的含义”。不完全的!
—
Lightness Races in Orbit
分号和换行符的解释取决于解析器的调用方式。对于“点”命令,Bourne Shell用“ NLFLG”调用解析器,告诉解析器在某些情况下将换行符和分号视为相等,但在其他情况下则不是这样。通常,分号和换行符并不等效,因为您可以使用换行符,其中分号会导致语法错误。
—
2015年