looks like zsh doesn't correctly parse this: $ zsh -c 'echo $((`:`))' zsh:1: bad math expression: illegal character: \M-] a little whitespace makes it happy: $ zsh -c 'echo $(( `:`))' 0 $ zsh -c 'echo $((`:` ))' 0 same for $(): $ zsh -c 'echo $(($(:)))' zsh:1: bad math expression: illegal character: \M-] $ zsh -c 'echo $(( $(:)))' 0 $ zsh -c 'echo $(($(:) ))' 0 looks like it's related to the subshell not outputting anything. if you use 'echo 0' instead of ':', it works out. $ zsh --version zsh 5.0.7 (x86_64-pc-linux-gnu) -mike