logoalt Hacker News

tzottoday at 10:07 AM2 repliesview on HN

I believe you missed a semicolon after `exit 1` and before `}`. `}` closes the opening `{` only at the start of a command (POSIX rules; don't remember now if bash recognizes it when it's just a command argument).


Replies

archargelodtoday at 10:34 AM

I'm just too used to how parsing works in Zsh. For bash and sh, there is indeed should be a semicolon.

xorcisttoday at 10:51 AM

In this specific case, echo can't fail to there's no need for any of that:

  [ -z "$1" ] && echo "fail" >&2 && exit 1
show 1 reply