You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Joachim Ansorg edited this page Nov 12, 2021
·
3 revisions
If grouping expressions inside [[..]], use ( .. ).
Problematic code:
[[ [ a || b ] && c ]]
[ [ a -o b ] -a c ]]
Correct code:
[[ ( a || b ) && c ]]
[ \( a -o b \)-a c ]] # or { [ a ] || [ b ]; } && [ c ]
Rationale:
[ .. ] should not be used to group subexpressions inside [[ .. ]] or [ .. ] statements.
For [[ .. ]], use regular parentheses.
For [ .. ], either use escaped parentheses, or preferably rewrite the expression into multiple [ .. ] joined with &&, || and { ..; } groups. The latter is preferred because [ .. ] is undefined for more than 4 arguments in POSIX.