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.
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.
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!
… unknown. This is still an open problem, for now.
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: