Updated SC2304 (markdown)

Vidar Holen
2021-08-22 20:05:48 -07:00
parent 0c60c81382
commit ba18e92461

@@ -17,6 +17,8 @@ result=$(expr 2 \* 3)
```
### Rationale:
ShellCheck found an `expr` command whose operator is an unescaped asterisk `*`.
When using `expr`, each argument is expanded the same way as for any other command. This means that `expr 2 * 3` will turn into `expr 2 Desktop Documents Downloads Music Pictures 3` depending on the files in the current directory, causing an error like `expr: syntax error: unexpected argument Desktop`
The best way to avoid this is to avoid `expr` and instead use `$((..))` instead. If you for any reason prefer the 200x slower, heavyweight process of forking a new process, you can escape the `*`. Both ways are demonstrated in the correct example.