I have a shell script with a syntax compatible to both `bash` and `zsh`, except for a section that has zsh specific syntax that throws syntax errors if sourced from bash.
Is there **an easy way** to escape such section when using bash?
---
The script is a bash function that sources all the files in a directory. It works fine from zsh (and it is irrelevant to the question).
```shell
#!/usr/bin/env bash
shell=$(ps -p $$ -oargs=)
if [ $shell = "bash" ]; then
for f in ~/.functions.d/*.sh; do source $f; done
elif [ $shell = "zsh" ]; then
for f (~/.functions.d/**/*.sh) source $f
fi
```
The error raised when sourcing it in `bash` is:
scr: line 8: syntax error near unexpected token `('
scr: line 8: ` for f (~/.functions.d/**/*.sh) source $f'
---
Relevant links:
- [This same question in Stack Overflow.](https://stackoverflow.com/questions/70382141/how-to-prevent-sourcing-a-part-of-a-bash-script)
- [Unix & Linux: Source only part of a script from another script?](https://unix.stackexchange.com/questions/242854/source-only-part-of-a-script-from-another-script)
- [Stack Overflow: Using source to include part of a file in a bash script.](https://stackoverflow.com/questions/22183903/using-source-to-include-part-of-a-file-in-a-bash-script)