# Install execline with Homebrew, apk, apt, MacPorts

Interpreter-less scripting language. Version 2.9.8.1 via Homebrew; verified 2026-06-22.

## Install

```sh
sudo av install brew:execline
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install execline
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install execline
```

  Evidence: MacPorts ports tree: lang/execline/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add execline
```

  Evidence: Alpine Linux edge package indexes: execline from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz

- Debian apt (92%):

```sh
sudo apt install execline
```

  Evidence: Debian stable package indexes: execline from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

## Package facts

- **Package key:** brew:execline
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/execline>
- **Version:** 2.9.8.1
- **Source summary:** Interpreter-less scripting language
- **Homepage:** <https://skarnet.org/software/execline/>
- **Repository:** <https://git.skarnet.org/cgi-bin/cgit.cgi/execline>
- **Upstream docs:** <https://skarnet.org/software/execline>
- **License:** ISC
- **Source archive:** <https://skarnet.org/software/execline/execline-2.9.8.1.tar.gz>
- **Last updated:** 2026-06-22T14:03:17-07:00
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- background (cli)
- backtick (cli)
- case (cli)
- cd (cli)
- dollarat (cli)
- elgetopt (cli)
- elgetpositionals (cli)
- elglob (cli)
- eltest (cli)
- emptyenv (cli)
- envfile (cli)
- exec (cli)
- execline-cd (cli)
- execline-umask (cli)
- execlineb (cli)
- exit (cli)
- export (cli)
- export-array (cli)
- fdblock (cli)
- fdclose (cli)
- fdmove (cli)
- fdreserve (cli)
- fdswap (cli)
- forbacktickx (cli)
- foreground (cli)
- forstdin (cli)
- forx (cli)
- getcwd (cli)
- getpid (cli)
- heredoc (cli)
- homeof (cli)
- if (cli)
- ifelse (cli)
- ifte (cli)
- ifthenelse (cli)
- importas (cli)
- loopwhilex (cli)
- multidefine (cli)
- multisubstitute (cli)
- pipeline (cli)
- piperw (cli)
- posix-cd (cli)
- posix-umask (cli)
- redirfd (cli)
- runblock (cli)
- shift (cli)
- trap (cli)
- tryexec (cli)
- umask (cli)
- unexport (cli)
- wait (cli)
- withstdinas (cli)
- background (alias)
- backtick (alias)
- case (alias)
- cd (alias)
- dollarat (alias)
- elgetopt (alias)
- elgetpositionals (alias)
- elglob (alias)
- eltest (alias)
- emptyenv (alias)
- envfile (alias)
- exec (alias)
- execline-cd (alias)
- execline-umask (alias)
- execlineb (alias)
- exit (alias)
- export (alias)
- export-array (alias)
- fdblock (alias)
- fdclose (alias)
- fdmove (alias)
- fdreserve (alias)
- fdswap (alias)
- forbacktickx (alias)
- foreground (alias)
- forstdin (alias)
- forx (alias)
- getcwd (alias)
- getpid (alias)
- heredoc (alias)
- homeof (alias)
- if (alias)
- ifelse (alias)
- ifte (alias)
- ifthenelse (alias)
- importas (alias)
- loopwhilex (alias)
- multidefine (alias)
- multisubstitute (alias)
- pipeline (alias)
- piperw (alias)
- posix-cd (alias)
- posix-umask (alias)
- redirfd (alias)
- runblock (alias)
- shift (alias)
- trap (alias)
- tryexec (alias)
- umask (alias)
- unexport (alias)
- wait (alias)
- withstdinas (alias)

## Dependencies

- skalibs

## Build dependencies

- pkgconf

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 2.9.8.1
- Package-manager updated: 2026-06-22
- Local data: ok
- Upstream repository: https://skarnet.org/software/execline/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

execline is a small non-interactive scripting language from skarnet.org, designed as a predictable shell alternative for process supervision, startup scripts, and command chaining.

### Project history

The official page describes execline as a scripting language like sh, but with substantially different syntax. Its design goal is predictable grammar and avoidance of shell-style security issues while retaining shell-level power through conditionals, loops, option handling, globbing, environment management, and process-control commands.

The public git tag list shows the 2.x series beginning with v2.0.0.0 about twelve years before June 2026. The upgrade notes record a major build-system change in 2.0.0.0 and continuing incremental additions through 2.9.x, including envfile, posix-cd, posix-umask, eltest, multicall support, and macOS shared-library support.

### Adoption history

execline is part of the wider skarnet.org software ecosystem and depends on skalibs. It is packaged across Unix-like distributions and package managers, including Homebrew, Debian, Ubuntu, Alpine, MacPorts, and others in the supplied package facts.

Its adoption is strongest among users of s6, runit-like supervision ideas, and minimal Unix service-management stacks, where explicit process state, file descriptor handling, and environment manipulation matter more than interactive shell convenience.

### How it is used

Users write execlineb scripts or compose the provided commands directly. The command set covers parser/launcher behavior, process state control, environment files, fd operations, redirection, pipelines, foreground/background blocks, conditionals, loops, positional parameters, and option parsing.

The homepage includes example .profile replacement scripts and documents each command with consistent exit behavior: temporary errors exit 111, permanent misuse-style errors exit 100, failed exec lookup exits 127, and other exec failures exit 126.

### Why package nerds care

execline is package-nerd significant because it decomposes shell behavior into many small binaries with explicit process semantics. It fits the skarnet tradition of small composable tools for supervision and init-adjacent systems.

It is also a good example of a package where the binary list is the product: installing execline adds a vocabulary of tiny command primitives rather than one large interactive shell.

### Timeline

- 2.0.0.0: Build system changed to the standard configure, make, install flow.
- 2.5.1.0: envfile command added.
- 2.5.3.0: posix-cd added and wait made POSIX-compliant.
- 2.9.1.0: eltest added.
- 2.9.2.0: Experimental multicall feature added.
- 2.9.8.0: Shared libraries supported on macOS.
- 2026: v2.9.9.1 tagged in the official git repository.

### Related projects

- skalibs is execline's required support library.
- The homepage lists official mirrors on Codeberg, GitHub, and SourceHut, and points users to skaware mailing-list discussion.

### Sources

- <https://skarnet.org/software/execline/>
- <https://skarnet.org/software/execline/upgrade.html>
- <https://git.skarnet.org/cgi-bin/cgit.cgi/execline/>
- <https://git.skarnet.org/cgi-bin/cgit.cgi/execline/refs/tags>
- <https://git.skarnet.org/cgi-bin/cgit.cgi/execline/log/>


## Security Notes

No matching local secret-handling manifest was found for execline. Nucleus package metadata is still published here so future coverage has a stable package URL.


## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** execline
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - execline - 2.9.6.1-1: normalized package name match | Debian stable package indexes: execline from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | small and non-interactive scripting language | https://skarnet.org/software/execline/
- Debian apt - execline-doc - 2.9.6.1-1: normalized package name match | Debian stable package indexes: execline-doc from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | small and non-interactive scripting language (documentation) | https://skarnet.org/software/execline/
- Debian apt - libexecline-dev - 2.9.6.1-1: normalized package name match | Debian stable package indexes: libexecline-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | small and non-interactive scripting language (development files) | https://skarnet.org/software/execline/
- Debian apt - libexecline2.9 - 2.9.6.1-1: normalized package name match | Debian stable package indexes: libexecline2.9 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | small and non-interactive scripting language (shared library) | https://skarnet.org/software/execline/
- Ubuntu apt - execline - 2.9.4.0-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: execline from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | small and non-interactive scripting language | https://skarnet.org/software/execline/
- Ubuntu apt - execline-doc - 2.9.4.0-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: execline-doc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | small and non-interactive scripting language (documentation) | https://skarnet.org/software/execline/
- Ubuntu apt - libexecline-dev - 2.9.4.0-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libexecline-dev from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | small and non-interactive scripting language (development files) | https://skarnet.org/software/execline/
- Ubuntu apt - libexecline2.9 - 2.9.4.0-1build2: normalized package name match | Ubuntu 24.04 LTS package indexes: libexecline2.9 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | small and non-interactive scripting language (shared library) | https://skarnet.org/software/execline/
- apk - execline - 2.9.9.1-r0: normalized package name match | Alpine Linux edge package indexes: execline from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | A small scripting language, to be used in place of a shell in non-interactive scripts. | https://skarnet.org/software/execline/
- apk - execline-dev - 2.9.9.1-r0: normalized package name match | Alpine Linux edge package indexes: execline-dev from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | A small scripting language, to be used in place of a shell in non-interactive scripts. (development files) | https://skarnet.org/software/execline/
- apk - execline-doc - 2.9.9.1-r0: normalized package name match | Alpine Linux edge package indexes: execline-doc from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | A small scripting language, to be used in place of a shell in non-interactive scripts. (documentation) | https://skarnet.org/software/execline/
- apk - execline-libs - 2.9.9.1-r0: normalized package name match | Alpine Linux edge package indexes: execline-libs from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | A small scripting language, to be used in place of a shell in non-interactive scripts. (libraries) | https://skarnet.org/software/execline/
- apk - execline-static - 2.9.9.1-r0: normalized package name match | Alpine Linux edge package indexes: execline-static from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | A small scripting language, to be used in place of a shell in non-interactive scripts. (static library) | https://skarnet.org/software/execline/
- MacPorts - execline: normalized package name match | MacPorts ports tree: lang/execline/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Ubuntu apt - python-case-doc - 1.5.3+dfsg-5: installed executable or alias match | Ubuntu 24.04 LTS package indexes: python-case-doc from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Python unittest Utilities (documentation) | https://github.com/celery/case
- Ubuntu apt - python3-case - 1.5.3+dfsg-5: installed executable or alias match | Ubuntu 24.04 LTS package indexes: python3-case from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Python unittest Utilities (Python3 version) | https://github.com/celery/case


## Related links

- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [pkgconf](https://www.automicvault.com/pkg/brew/pkgconf/) - Build dependency declared by Homebrew.
- [s6](https://www.automicvault.com/pkg/brew/s6/) - Popular package that depends on this formula.
- [s6-rc](https://www.automicvault.com/pkg/brew/s6-rc/) - Popular package that depends on this formula.
- [envfile](https://www.automicvault.com/pkg/npm/envfile/) - Executable or command metadata overlaps with this package. Shared terms: envfile.

## Combined YAML source

View the package source record on GitHub. [combined/execline.yml](https://github.com/automic-vault/db/blob/main/combined/execline.yml)


## Sources

- Nucleus package database
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
