On May 20, 2023, at 22:18, Michael D. Setzer II <msetzerii@xxxxxxxxx> wrote:
So, the #! as the first two bytes of the shell script tells the OS that it is a shell script and to invoke what follows with the file as a parameter. So in your example, it will invoke /usr/bin/bash /path/to/script.sh. Without the shebang (what we call ‘#!’), the OS looks at the ‘bo’ to identify what kind of executable it is. That’s the first two bytes of the file, because it starts with the text ‘boincmgr’. By default, if the OS doesn’t recognize the file’s “magic number” (those two first bytes), it executes it with /bin/sh by default. However, on your system it thinks your executable is some sort of binary program and instead of interpreting it as a shell script, it tries to execute as a loaded executable. And of course, that crashes. Or maybe your /bin/sh is broken somehow as to generate that error. Basically, without the shebang, shell scripts will have unpredictable results. Don’t do it. -- Jonathan Billings |
_______________________________________________ users mailing list -- users@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to users-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/users@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue