logoalt Hacker News

normie3000today at 5:55 AM4 repliesview on HN

Prefer

  if x then :; else something; fi
over

  if ! x; then something; fi
Really? Colon is the appendix of the shell.

Replies

bodyfourtoday at 8:21 AM

The "if !" syntax isn't available on old enough shells.

Probably not an issue for most people in 2026 -- you have to back pretty far for it to be missing. Technically, though, "if x; then :; else" is more portable.

yjftsjthsd-htoday at 6:36 AM

Aside: hacker news doesn't do markdown code blocks, but instead uses 2 spaces before text;

   if x then :; else something; fi
show 1 reply
refptoday at 6:10 AM

First of all, I must salute you on the joke; well put haha!

---

It is a (contrived) example of usage where a command is required and `:` can fill in the blanks. There are certainly scenarios where negating an expression becomes harder than doing the "dumb" way, and I for one has written code where `:` can be used as a placeholder meaning "fill this in later" or equivalent.

With that said, 100% agree with you that in actual "production" code - there is always a cleaner way.