В Bash(1) смотри специальные параметры, там увидишь, а в ABS глава так и называется Завершение и код завершения в оглавлении на первой странице (если по моей ссылке)
Познание бесконечности требует бесконечного времени.
А. и Б. Стругацкие
Понедельник начинается в субботу
в указанном разделе ABS сказано "Every command returns an exit status", но в разделе "4.2. Variable Assignment" говорится о "the assignment operator".
в bash(1) говорится
? Expands to the status of the most recently executed foreground pipeline.
про присваивание опять же
A variable may be assigned to by a statement of the form
в указанном разделе ABS сказано "Every command returns an exit status", но в разделе "4.2. Variable Assignment" говорится о "the assignment operator".
это из ABS Каждая команда возвращает код завершения (иногда код завершения называют возвращаемым значением ). В случае успеха команда должна возвращать 0, а в случае ошибки -- ненулевое значение, которое, как правило, интерпретируется как код ошибки. Практически все команды и утилиты UNIX возвращают 0 в случае успешного завершения...
? Expands to the status of the most recently executed foreground pipeline.
про присваивание опять же
A variable may be assigned to by a statement of the form
name=[value]
Выдержка из моего man bash
Конвейер - это последовательность одной или более команд...
получается - "недокументированная особенность"?
всё прекрасно документировано
Познание бесконечности требует бесконечного времени.
А. и Б. Стругацкие
Понедельник начинается в субботу
Меня эта фича тоже с толку сбила. Национальные особенности пингвинов
Bash is an sh-compatible command language interpreter that execute commands read from the standard input or from a file.
Всё, что прочитано со стандартного ввода или из отдельной строки исполняемого файла есть команда.
Поэтому, когда сталкиваешся с неясностями или неожиданными результатами, почти всё можно проверить прямо в командной строке.