Это связано с тем, что echo
не читается со стандартного ввода. Каналы полезны только для отправки стандартного вывода одной команды на стандартный ввод следующей команды.
Поскольку вывод ef echo abc ...
не потребляется вторым echo
, он теряется, и выход из канала отсутствует, за исключением единственной новой строки из второе эхо
.
Поскольку последнее echo
успешно выводит пустую строку, статус выхода равен нулю.