!
.while! [ -f file ]
do sleep 1; done
while ! [ -f file ]
do sleep 1; done
ShellCheck found a keyword immediately followed by a !
.
There needs to be a space between them.
None
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.