|
From: | Juergen Sauermann |
Subject: | Re: [Bug-apl] strange behavior of -- |
Date: | Sat, 4 Feb 2017 14:27:26 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 |
Hi, yes, most of this trouble is caused by how execve() works, which is quite different on different platforms. And it happens before apl is being called so I cant do much about it. Sometimes it helps to start apl with -f so that the interpreter knows where to fetch its input, like: #!/usr/local/bin/apl -f /home/eedjsa/tmp/script --script -- /// Jürgen On 02/04/2017 02:00 PM, Alexey
Veretennikov wrote:
Hi Juergen, Something is apparently strange on OSX(?). With the latest version when I run the same script below I get the silent input without echoing, no output like below, and I have to blindly type )off manually to exit interpreter. Juergen Sauermann <address@hidden> writes:Hi Alexey, I have changed the handling of command line options, SVN 877. It now works like this: script: #!/usr/local/bin/apl --script -- )copy 5 FILE_IO FIO∆errno 8⎕CR ⎕ARG )off output: address@hidden:~/tmp$ ./script scriptarg DUMPED 2017-01-28 22:57:44 (GMT+1) ┌→──────────────────────────────────────────────────────────┐ │┌→─────────────────┐ ┌→───────┐ ┌→─┐ ┌→───────┐ ┌→────────┐│ ││/usr/local/bin/apl│ │--script│ │--│ │./script│ │scriptarg││ │└──────────────────┘ └────────┘ └──┘ └────────┘ └─────────┘│ └∊──────────────────────────────────────────────────────────┘ /// Jürgen On 02/03/2017 11:06 PM, Alexey Veretennikov wrote: Hi, Yes ./script -- myarg works. The problem is why I have to repeat -- in command line since I've already specified it in the first line of the script, as it is specified in documentiation. Basically I would like to pass my arguments to the script without mentioning "--" in the command line. Juergen Sauermann <address@hidden> writes: Hi Alexey, how about this: address@hidden:~/tmp$ ./script -- arg** **DUMPED 2017-01-28 22:57:44 (GMT+1)** **┌→────────────────────────────────────────────────────┐** **│┌→─────────────────┐ ┌→───────┐ ┌→───────┐ ┌→─┐ ┌→──┐│** **││/usr/local/bin/apl│ │--script│ │./script│ │--│ │arg││** **│└──────────────────┘ └────────┘ └────────┘ └──┘ └───┘│** **└∊────────────────────────────────────────────────────┘* There is no point (and it does not work) to put the arguments in the first line of the script, because if the script itself knows them then the rest of the script can use them as well. *⎕ARG *is what is passed to the script, not what is passed to the interpreter mentioned in the script. See also *man execve*. /// Jürgen On 02/03/2017 08:29 PM, Alexey Veretennikov wrote: Given the following script: ------------------------------------------ #!apl --script -- )copy 5 FILE_IO FIO∆errno 8⎕CR ⎕ARG )off ------------------------------------------ when I try to run it like ./script.apl myarg I get the error: /script.apl myarg unknown option 'myarg' ... This happens on 833 and 1.5 and on both linux and osx. In INFO file it explicitely states: "Using ’—-’ as last argument on the first line of the script file prevents any of the options given to the script to be interpreted as APL options; all such options are passed to the application via ⎕ARG." But it is not happening. |
[Prev in Thread] | Current Thread | [Next in Thread] |