До сих пор я думал, что точка с запятой в оболочке имеет (как-то) то же значение, что и разрыв строки. Поэтому я был удивлен, что для
alias <name>=<replacement text>; <name>
<name>неизвестно, пока известно в следующей строке. csh, tcsh, sh, kshИ bashведут себя так же. По крайней мере, для cshнего не имеет значения, используется ли псевдоним непосредственно или сценарий получен перед точкой с запятой - псевдонимы неизвестны после, ;но известны в следующей командной строке. Это ошибка или это поведение предназначено?