"${var:?}" to ensure this never expands to /*
.rm -rf "$STEAMROOT/"*rm -rf "${STEAMROOT:?}/"*If STEAMROOT is empty, this will end
up deleting everything in the system's root directory.
Using :? will cause the command to fail if the variable
is null or unset. Similarly, you can use :- to set a
default value if applicable.
In the case of command substitution, assign to a variable first and
then use :?. This is relevant even if the command seems
simple and obviously correct, since forks and execs can fail due to
external system limits and conditions, resulting in a blank
substitution.
For more details about :? see the "Parameter Expansion"
section of the Bash man page.
None.
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.