2 SC1080
Joachim Ansorg edited this page 2022-10-31 15:12:03 +01:00

You need \ before line feeds to break lines in [ ].

Problematic code:

[ "$filename" =
  "$otherfile" ]

Correct code:

[ "$filename" = \
  "$otherfile" ]

Rationale:

Bash/ksh [[ ]]] can include line breaks anywhere, but [ ] requires that you escape them. If you are writing a multi-line [ .. ] statement, make sure to include these escapes. If the [ ] is supposed to be on a single line, make sure the ] is there.

Exceptions:

None

  • Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!