For the build commands, it's irrelevant which shell the user uses.
Good, so one thing is clear now - you haven't understood the problem at all ;-). I'll try to explain again on @ruzgarmax's case:
He installed fortran on his machine and because standard paths like /usr/bin are read-only on macOS, it's probably installed somewhere in his home directory. He uses bash and his `.bash_profile` was updated with something like ``` PATH=$PATH:~/path/to/the/fortran/directory ``` Now when he runs terminal with his default bash shell, he can just type `fortran` and it is found because bash reads `.bash_profile` upon initialization. However, when he runs Geany and Geany is configured to use `/bin/sh` for compile command execution, it runs ``` /bin/sh -c fortran ``` Here, `sh` reads the `.profile` config file only and not the `.bash_profile` config file so PATH isn't updated and fortran isn't found.
Clear? It DOES MATTER which shell is is used for running compile commands. On linux binaries are usually installed in standard paths so you usually won't run into issues like that but it may still matter for some other environment variables.
We can also have a (hardcoded) list of shells that we test for existence, if we know they all work (e.g. "zsh > bash > sh"), but I'm really afraid of letting the user assign arbitrary shell programs.
I'm totally fine with that.
The user could also configure a shell wrapper that messes things up. While it would be his fault essentially, it will take us time to find that out.
Yep, that could happen but it would be just one of the thousands other things he can misconfigure on his system.