3 ms·
>If there is such nonblank text then for [most unices] this group consists of precisely one argument, as in the example above where argi consists of the single
by philh 16y ago
>If there is such nonblank text then for [most unices] this group consists of precisely one argument, as in the example above where argi consists of the single argument "-a -b".
Interesting. This seems pretty unintuitive, I would expect the "-a", "-b" behaviour. (I recognise that this would be more complicated to implement and make it impossible to pass an argument with spaces.) It seems like it could easily cause problems especially if you use `env` to handle paths. But I don't think I've ever run afoul of this.
- kree10 16y agoI miss the old FreeBSD parameter behavior when I could have shebang lines like: #!/usr/local/bin/sudo -u someuser /bin/sh
- JoachimSchipper 16y agoIt does work this way, though. Try the following files: #!/usr/bin/sed -f s/a/b/g s/c/d/g #!/usr/bin/sed -e 's/a/b/g' -f s/c/d/g
- philh 16y agoIt's not clear to me what point you're trying to make, but the second one gives an error: "-e expression #1, char 2: unknown command: `''", because it's getting a single argument containing a quote. Removing the quotes gives "-e expression #1, char 10: unknown option to `s'", because "s/a/b/g -f" is not a valid sed command. And to illustrate my point about env, sed for me is in /bin. But "#!/usr/bin/env sed -f" doesn't work, because it looks for a program named "sed -f".
- JoachimSchipper 16y agoI was agreeing with you, and providing a simple testcase to show that you were, indeed, right (because I agreed that the behaviour is somewhat surprising). Sorry if that wasn't clear.