Skip to content

Latest commit

 

History

History
27 lines (16 loc) · 825 Bytes

SC2293.md

File metadata and controls

27 lines (16 loc) · 825 Bytes

Pattern: Use of eval with escaped array

Issue: -

Description

ShellCheck noticed that you are calling eval and including an escaped array. However, the array is passed as multiple arguments and relies on being implicitly joined together to form a single shell string, which eval can then evaluate.

Instead, prefer building your shell string with explicit string concatenation by using * instead of @ for the index, such as ${*@Q} or ${array[*]@Q}.

This suggestion is equivalent to SC2124, but for eval arguments rather than string variables.

Example of incorrect code:

eval "$MYCOMMAND ${@@Q}"

Example of correct code:

eval "$MYCOMMAND ${*@Q}"

Further Reading