Comments on A shell script that can run under different shells
Post
A shell script that can run under different shells
+6
−0
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).
#!/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.
- Unix & Linux: Source only part of a script from another script?
- Stack Overflow: Using source to include part of a file in a bash script.
1 comment thread