!.while! [ -f file ]
do sleep 1; donewhile ! [ -f file ]
do sleep 1; doneShellCheck 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.