The following loops endlessly unless ABRA=KADABRA is removed (AlpineLinux edge, v1.28.2): #!/usr/bin/env ABRA=KADABRA sh echo hoho
This construct does not do what you expect. Everything after #! goes into argv[1]: argv[0]='/usr/bin/env' argv[1]='ABRA=KADABRA sh' argv[2]='./script' and argv[2] is script's name. Thus, it won't work with any implementaion of "env".
|This construct does not do what you expect. Ok, but i think it is still a problem that this loops with 100% percent CPU usage, endlessly. |Everything after #! goes into argv[1]: | |argv[0]='/usr/bin/env' |argv[1]='ABRA=KADABRA sh' |argv[2]='./script' | |and argv[2] is script's name. Thus, it won't work with any implementaion of |"env". Isn't that a pity, what a terrible restriction, it would be so nice to use. (At least perl has this -x ... "#!perl" mechanism so that no wrapper is needed at least there.) And, not all env(1): ?0[steffen@devon shared]$ ./t.sh hoho KADABRA haha ?0[steffen@devon shared]$ cat t.sh #!/usr/bin/env ABRA=KADABRA sh echo hoho $ABRA haha ?0[steffen@devon shared]$ strings /usr/bin/env usage: env [-i] [name=value ...] [utility [argument ...]] $FreeBSD: src/usr.bin/env/env.c,v 1.11 2002/09/04 23:28:59 dwmalone Exp $ Much better, but not standard, unfortunately. --steffen