Pipestatus

Jul 20, 2023

UNIX/POSIX shell helper for running pipes safely

pipestatus - source file for POSIX shell that allows to obtain an exit status of every program in a pipe.

                    MOTIVATION

When we program in shell we often run pipes like this

prog1 args1 | prog2 args2 | ... | progN argsN

POSIX says that exit status of pipe is the exit status of LAST program in it, i.e. progN in our example. That is, exit status of all other programs in pipe is silently ignored. But in many situations exit status of all programs in pipe should be checked to make program robust. Some shells like BASH and ZSH have special extensions for doing this but POSIX shell unfortunately doesn’t provide an EASY way for doing this.

In order to solve the problem, described above pipestatus was written.



Checkout these related ports:
  • Zziplib - Library to provide transparent read access to zipped files
  • Zydis - Fast and lightweight x86/x86-64 disassembler library
  • Zycore-c - Support library with platform independent types, macros, etc for Zydis
  • Zthread - Platform-independent object-oriented C++ threading library
  • Zookeeper - Coordination Service for Distributed Applications
  • Zls - Zig LSP implementation + Zig Language Server
  • Zfp - High throughput library for compressed floating-point arrays
  • Zeal - Offline documentation browser
  • Zapcc - C++ caching compiler based on clang
  • Zanata-platform - Web-based translation platform
  • Zanata-cli - Zanata Java command line client
  • Z88dk - Complete Z80/Z180 development kit
  • Z80ex - ZiLOG Z80 CPU emulator library
  • Z80asm - Assembler for the Z80 microprocessor
  • Z80-asm - Z80 assembly code assembler and disassembler