[ 1 ], use
while [ 1 ] do echo "infinite loop" done
while true do echo "infinite loop" done
This is a stylistic suggestion to use
true instead of
[ 1 ].
[ 1 ] seems to suggest that the value "1" is somehow relevant to the statement. This is not the case: it doesn't matter. You can replace it with
[ 0 ] or
[ wombat ], and it will still always be true.
If you instead use
true, the value is actually considered and can be inverted by replacing with
On bash, you can also use
(( 1 )), which evaluates to true much like in C.
(( 0 )) is similarly false.
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.