--- Begin Message ---
Subject: |
Bug: #!/usr/bin/env gives poor error message for DOS line-endings |
Date: |
Fri, 22 Jul 2016 21:39:58 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.0 |
I have found a poor error message in env (GNU coreutils) 8.23, on FC22.
---
I created the following executable file, with a DOS line-end:
#!/usr/bin/env sh
When run, it displays the following error message on my terminal:
: No such file or directory
This error message is cryptic. However, if you process stderr through
`cat -v` to display nonprintable characters, you find the error message
has a CR in it:
/usr/bin/env: sh^M: No such file or directory
and the CR caused the second half of the error message to over-write the
first half when displayed on-screen.
---
To diagnose the problem I had to use strace, so IMO this error message
could be improved by expanding out control characters. For example see
how bash handles an analogous situation, with the script:
#!/usr/bin/sh
Which displays:
bash: ./tmp.sh: /usr/bin/sh^M: bad interpreter: No such file or directory
Here, bash has expanded out the ^M before displaying it, showing that
something is stuck on the end of the #! line.
--
Simon Richard Clarkstone, CoreFiling Limited
Software Engineer, Data Modelling
http://www.corefiling.com/
Phone: +44-1865-203192
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#24055: Bug: #!/usr/bin/env gives poor error message for DOS line-endings |
Date: |
Fri, 22 Jul 2016 23:57:58 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
On 22/07/16 21:39, Simon Richard Clarkstone wrote:
> I have found a poor error message in env (GNU coreutils) 8.23, on FC22.
>
> ---
>
> I created the following executable file, with a DOS line-end:
>
> #!/usr/bin/env sh
>
> When run, it displays the following error message on my terminal:
>
> : No such file or directory
>
> This error message is cryptic. However, if you process stderr through
> `cat -v` to display nonprintable characters, you find the error message
> has a CR in it:
>
> /usr/bin/env: sh^M: No such file or directory
That's fixed by the new file name quoting in coreutils 8.25.
The new output is:
/usr/bin/env: ‘sh\r’: No such file or directory
thanks,
Pádraig.
--- End Message ---