Subject: Re: bug#47432: 28.0.50; Dired using ! or & on file should fail without command supplied

From: Eli Zaretskii <[email-masked]>
Date: Mon, 29 Mar 2021 22:23:49 +0300

> Date: Mon, 29 Mar 2021 21:51:41 +0300
> From: Jean Louis <[email-masked]>
> Cc: [email-masked], [email-masked],
>   Lars Ingebrigtsen <[email-masked]>
> 
> Let me give you more from researching how it works:
> 
> - if there is script.pl or script.sh, then ! or & will verify for
>   executable bit, and execute it only if set; BUT it is not executing
>   THE FILE which is marked!
> 
>   Replicate it by putting one non-executable script.sh in your PATH
>   and going to directory that is not in your path that has executable
>   script.sh in that path, do ! or & on that command.
> 
>   script.sh:
> 
>   #!/bin/bash
>   echo Hello, it worked
> 
>   ---- 
>   put same script in your PATH, like maybe ~/bin/script.sh and make it
>   non-executable.
> 
>   put same file, but executable in other directory ~/tmp/script.sh
> 
>   go with Dired to ~/tmp/script.sh as it is executable, so do ! or &
>   and it will try to execute which file?
> 
>   Definitely not ~/tmp/script.sh but it will try to execute
>   "script.sh" in PATH.
> 
> So think about that, there is no logic that FILE-LIST is appended to
> empty COMMAND like "" as that FILE-LIST is not getting executed
> really, so it is misleading the user.

You are again assigning the shell commands the logic and features of a
typical Posix shell.  But that's just one possible type of shell, and
one possible type of logic.  Emacs leaves it to the user to do what
the user wants, while you suggest that Emacs assumes something about
the shell and the semantics of what the user intends to do.