On 2021-08-31 8:27 p.m., Lawrence Velázquez wrote:
"The first group, /arg0/, consists of one argument. For SysVR4, SunOS, Solaris, IRIX, BSDI, BSD-OS, OpenBSD, DU, Unixware, Linux 2.4, FreeBSD this argument is |/path/interpreter|. For Tru64 (4.0), AIX (4.3, 5.1), Linux 2.2, MacOS X this argument is |interpreter|. For HP-UX this argument is |/scriptpath/script|."If you want to go a little deeper than Bart's summary, here's some light bedtime reading. https://homepages.cwi.nl/~aeb/std/hashexclam-1.html
... I am in awe of the mind of the person who compiles this sort of information.
"On many other flavours, the maximum length varies between _POSIX_PATH_MAX (255) and PATH_MAX (f.i. 1024); see |limits.h| or |syslimits.h| on the respective system.Exceptions are BIG-IP4.2 (BSD/OS4.1) with 4096 and FreeBSD since 6.0 (PAGE_SIZE) with 4096 or 8192 depending on the architecture.Minix also uses the limit of |PATH_MAX| characters (255 here) but the actual limit is 257 characters,because |patch_stack()| in |src/mm/exec.c| first skips the "|#!|" with an |lseek()| and then reads in the rest. "https://www.in-ulm.de/~mascheck/various/shebang/
... Good to know!
When we source a function it's there in memory for next time, no? Otherwise a script is freshly read each time it is sourced. I"m pretty sure about this.If a function is declared (yes I know, wrong word but you get my meaning) then the function enters memory, otherwise it's interpret-and-forget until next time, no?I don't really know what you mean here.
Indeed, I'm now aware of the difference but I sure don't understand it. I had no idea there was any such issue.It's trivial to confirm that this is not the case.