Wrangling Shebangs is one of the things we have to take a stance on as part of Ecosystem Conventions, as a part of shipping systems that work.

Background: What’s a shebang?

A “shebang” is a script that starts with a “#!”, and the path to an interpreter for that script.

You see these all the time:

#!/bin/bash
echo hello

They’re commonly used for shell scripts; python scripts; perl scripts; etc.

Why do we need an opinion on it?

Shebangs flunk us for Goal: Path-agnosticism.

You can see why right in the first line: they’re an absolute path. That means the jig is already up.

But existing software ships small scripts using shebangs all over the place. They appear in a fractal of places. So we need a strategy for handling this challenge!

What we do in the Warpsys ecosystem

… unknown. This is still an open problem, for now.

An idea: peek up the process tree

If we take the Convention: Typical System Directories as a given — e.g. the system has paths like /envs/default/bin/foobar for executables — then, perhaps we could: