I wish env -S was more portable. It's a newer feature of the coreutils env implementation and isn't supported elsewhere afaik.
You can use so-called "exec magic" instead of `env -S`. Here is an explanation with Python examples: https://dbohdan.com/scripts-with-dependencies#exec-magic (disclosure: my site). In short:
#! /bin/sh "exec" "/usr/bin/env" "uv" "run" "--quiet" "--script" "$0" "$@" # /// script # dependencies = [ # "cowsay", # ] # /// import cowsay cowsay.cow("Hello, world!")
#! /bin/sh "exec" "/usr/bin/env" "pipx" "run" "$0" "$@" # ...
FreeBSD 6.0 added 'env -S'. They have adopted a few different GNU inspired options recently, which I am happy about.
You can use so-called "exec magic" instead of `env -S`. Here is an explanation with Python examples: https://dbohdan.com/scripts-with-dependencies#exec-magic (disclosure: my site). In short:
On systems that can't run uv, like NetBSD and OpenBSD, switch to pipx: