greeting="hello
target="world"
greeting="hello"
target="world"
The first line is missing a quote.
ShellCheck warns when it detects multi-line double quoted, single quoted or backticked strings when the character that follows it looks out of place (and gives a companion warning SC1079 at that spot).
If you do want a multiline variable, just make sure the character after it is a quote, space or line feed.
var='multiline
'value
can be rewritten for readability and to remove the warning:
var='multiline
value'
As always `..`
should be rewritten to
$(..)
.
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.