There are several issues in complex commands descriptions. *if command* > > if list then list [ elif list then list ] ... [ else list ] fi > The if list is executed, and if it returns a zero exit > status, the then list is executed. Otherwise, the elif list is executed > and if its status is zero, the then list is executed. If > each elif list returns nonzero status, the else list is executed. There is no mention of a terminator after *list*. It's better to rewrite command description as: if list *term* then list *term* [ elif list *term *then list *term *] ... [ > else list *term *] fi The if list is executed, and if it returns a zero exit > status, the then list is executed. Otherwise, the elif list is executed > and if its status is zero, the then list is executed. If > each elif list returns nonzero status, the else list is executed. *for command* > for name ... [ in word ... ] term do list done > Expand the list of words, and set the parameter name to each > of them in turn, executing list each time. If the `in word' is > omitted, use the positional parameters instead of the words. > The term consists of one or more newline or ; which > terminate the words, and are optional when the `in word' is omitted. > More than one parameter name can appear before the list of > words. If N names are given, then on each execution of the loop the > next N words are assigned to the corresponding parameters. > If there are more names than remaining words, the remaining parame‐ > ters are each set to the empty string. Execution of the > loop ends when there is no remaining word to assign to the first name. > It is only possible for in to appear as the first name in > the list, else it will be treated as marking the end of the list. It's better to write at my glance: > for name ... [ in word ... ] term do list *term* done > Expand the list of words, and set the parameter name to each > of them in turn, executing list each time. If the `in word' is > omitted, use the positional parameters instead of the words. > The term consists of one or more newline or ; which > terminate the words, and are optional when the `in word' is omitted. > More than one parameter name can appear before the list of > words. If N names are given, then on each execution of the loop the > next N words are assigned to the corresponding parameters. > If there are more names than remaining words, the remaining parame‐ > ters are each set to the empty string. Execution of the > loop ends when there is no remaining word to assign to the first name. > It is only possible for in to appear as the first name in > the list, else it will be treated as marking the end of the list. The same issues applies for: - for (second form) - while - until - repeat -- *# Best regards, Emily Grace Seville.* *[contacts]* site *=* "*https://emilyseville7cfg.github.io/about/ "* phone *=* "+79247259451*"*