I have a EC2 userdata bash script with some sed entries as follows. The userdata was base64 encoded as part of a launch template.
sed -i -- "s/{{ data_dir }}/$${CONSUL_DATA_DIR//\//\\\/}/g" $CONSUL_DEFAULT_CONFIG
However I’m getting an error when the instance builds with the below:
sed: -e expression #1, char 39: unknown option to `s'
The
--means end of options, everything following is a file name. The substitutions//that follows is an option, not a file name. Move the--past the substitution argument. Or maybe it's a typo and you should runsed -i -e "s/.../.../g" $CONSUL_DEFAULT_CONFIG.In addition,
$$will be replaced by the shell by the process ID. Is this taken from a Makefile snippet? Then use just one$when running in the shell and not within a make recipe.