Can I have a conditional shebang?
Not directly, no. Best to write a wrapper Bourne shell script and shebang that:
#!/path/to/my/wrapper
and the wrapper starts with:
#!/bin/sh
for shell in first second third; do
if /usr/bin/env "${shell}" "$@"; do exit $?; done
done
# We didn't find any of them.
exit 1
This lets env(1) use the ${PATH} search list to locate the programs, in the order given in the for-loop.