On May 21, 2023, at 09:47, Jonathan Billings <billi...@negate.org> wrote:
> 
> 
>> 
>> On May 20, 2023, at 22:18, Michael D. Setzer II <msetze...@gmail.com> wrote:
>> 
>> 
>> Recently was getting a strange error when running a script that didn't have 
>> #!/usr/bin/bash at top?
>> free(): invalid next size (fast)
>> Aborted (core dumped)
>> Just adding the line fixes the issue, but not sure why??
>> Have run the script before with no such error, but had been a while?  Script 
>> was just one line? Now 2 lines.
>> #!/usr/bin/bash
>> boincmgr -e /home/msetzerii/BOINC -d /home/msetzerii/BOINC
> 
> 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.


This is what I’d expect would happen:

$ echo boincmgr >/tmp/test.sh
$ chmod +x /tmp/test.sh
$ file /tmp/test.sh
/tmp/test.sh: ASCII text
$ /tmp/test.sh
/tmp/test.sh: line 1: boincmgr: command not found
$

So I suspect something weird is going on that isn’t being mentioned. What 
happens if you run /bin/sh /path/to/script.sh (replacing my example path with 
the path to your script)?

--
Jonathan Billings
_______________________________________________
users mailing list -- users@lists.fedoraproject.org
To unsubscribe send an email to users-le...@lists.fedoraproject.org
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@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to