I’m reading this and interpreting that line 27 of that script is
sudoecho"# FYI quotes(") must be escaped with \ like \"
I am confused why there is no trailing double quote, the last 3 chars should be \"" so perhaps this is a bad assumption but the best I can do with the available information.
So the fix here is to change startup-script line 27 so that you’re not echoing things that might contain characters that might be interpreted by echo or your shell.
Now if startup-script is provided by your distro, there may be a reason that it’s using echo, but I will tell you now whatever dipshit reason they provide they’re fucking wrong because EXHIBIT A:
# " fucks the script and rule 0 of linux is “don’t break userspace”.
Everything else allows any printable char after the # in a comment, that script is not special, comments are not to be interpreted by the program. That is a show-stopping bug in startup-script and must be fixed.
${server_service} is read from the file I posted in the 2nd image. Since it was a test script I hadn’t bothered implementing any escaping tools, I wanted to make sure terraform allowed this first.
And there’s your problem. You’re echoing using double quotes which will interpret characters. Don’t do that. That’s a bug. cat or cp the file to the destination; printf if the contents are all in that variable.
Here’s what I’m reading:
startup-scriptline 27 threw the error.I’m reading this and interpreting that line 27 of that script is
sudo echo "# FYI quotes(") must be escaped with \ like \"I am confused why there is no trailing double quote, the last 3 chars should be
\""so perhaps this is a bad assumption but the best I can do with the available information.So the fix here is to change
startup-scriptline 27 so that you’re notechoing things that might contain characters that might be interpreted by echo or your shell.Now if
startup-scriptis provided by your distro, there may be a reason that it’s using echo, but I will tell you now whatever dipshit reason they provide they’re fucking wrong because EXHIBIT A:# "fucks the script and rule 0 of linux is “don’t break userspace”.Everything else allows any printable char after the
#in a comment, that script is not special, comments are not to be interpreted by the program. That is a show-stopping bug instartup-scriptand must be fixed.EOF
And your interpretation is wrong. Line 27 is actuallly
sudo echo "${server_service}" > /lib/systemd/system/server.service${server_service}is read from the file I posted in the 2nd image. Since it was a test script I hadn’t bothered implementing any escaping tools, I wanted to make sure terraform allowed this first.And there’s your problem. You’re
echoing using double quotes which will interpret characters. Don’t do that. That’s a bug.catorcpthe file to the destination;printfif the contents are all in that variable.