> Only problem is it's not POSIX so there is some weirdness in command substitution, logical operators and stuff. So you still script in sh.
Yeah some wild-card matching stuff doesn't work, also for example expanding `pkg-config --cflags gobject-2.0` as one would in bash requires calling eval gcc.
On the other-hand it's not like Bash doesn't have weird gotcha's -- for example does anyone remember which of these is a valid conditional?
string='Foo Bar';
if [[ *"Foo"* == $string ]]
if [[ $string == *"Foo"* ]]
I created a language called bish that allows you to write your shell scripts in a sane and comfortable syntax. No more remembering which one of those conditionals to use! Bish compiles to bash, so you also get to keep all of the portability that comes with bash scripts. I haven't had much time to work on it recently, and it's still missing some features, but it's ready to use now: