Hi Nicolai, Yes, I think this is too ugly:
#!/usr/bin/gawk {exit system("/bin/sh -c 'exec \"$(dirname \"$0\")\"/subdir/catself \"$0\"' " FILENAME);} Imagine you have that feature in your kernel would you rather use: #!{dirname}/subdir/catself You second advice involves changing root fs which is not desirable in copy-deployment apps (bring all the dependencies) This more about making kernel "user" friendly. Thank you. On 1 June 2016 00:02:05 BST, Nicolai Stange <nicsta...@gmail.com> wrote: >Hi Boris, > >Boris Rybalkin <ribal...@gmail.com> writes: > >> I would like to know if any changes to parsing '#!' script header >line >> are accepted in particular having ability to run interpreter from >> relative to the script path? >> >> Something like: >> >> #!{dirname}/python/bin/python >> >> Where {dirname} is a special keyword replaced with dirname of a >script. > >Just for the record, this can already be done without any help from the >kernel: > >Assuming the following demonstration directory layout > > <some_test_dir>/subdir/catself > <some_test_dir>/relshebang > >where catself.sh is your "interpreter": > > #!/bin/sh > tail -n +2 $1 > >and relshebang is your script file invoking the toy interpreter from >its >shebang as follows: > >#!/usr/bin/gawk {exit system("/bin/sh -c 'exec \"$(dirname >\"$0\")\"/subdir/catself \"$0\"' " FILENAME);} > Hello world. > > >You don't necessarily need to use gawk here, anything being able to do >system() and taking some code snippet from its first argument will >certainly work. > >If this is too ugly, you could also write your own wrapper a la >/usr/bin/env and install that at some central location. > > >Best, > >Nicolai -- Sent from my Android device with K-9 Mail. Please excuse my brevity.