Open
Description
For bash
, a line ending with a backslash causes a false positive unless the backslash is proceeded with a space, eg:
echo "${@}"\
|less
The following script:
#!/bin/bash
echo "1: This should not cause SC2145 error but does"; echo "${@}"\
|less
echo "2: This should not cause SC2145 error but does"; echo "${@}"\
|less
echo "3: This should not cause SC2145 error but does"; echo "${@}"\
"test"
echo "4: This correctly does not cause SC2145 error"; echo "${@}"|less
echo "5: This correctly does not cause SC2145 error"; echo "${@}" \
|less
echo "6: This correctly does not cause SC2145 error"; echo "${@}" \
"test"
echo "7: This correctly causes a SC2145 error"; echo "${@} test"
Gives the following output:
In test.bash line 3:
echo "1: This should not cause SC2145 error but does"; echo "${@}"\
^--^ SC2145 (error): Argument mixes string and array. Use * or separate argument.
In test.bash line 6:
echo "2: This should not cause SC2145 error but does"; echo "${@}"\
^--^ SC2145 (error): Argument mixes string and array. Use * or separate argument.
In test.bash line 9:
echo "3: This should not cause SC2145 error but does"; echo "${@}"\
^--^ SC2145 (error): Argument mixes string and array. Use * or separate argument.
In test.bash line 20:
echo "7: This correctly causes a SC2145 error"; echo "${@} test"
^--^ SC2145 (error): Argument mixes string and array. Use * or separate argument.
Metadata
Metadata
Assignees
Labels
No labels