使用 echo / linux 导出多行代码而不做任何更改

Exporting multiple line code without changes using echo / linux

系统CentOS 7.2 寻找将多行代码写入文件而不更改的解决方案

小件表格代码:

echo '
sed -i $'45 a \n' /usr/local/nagios/etc/nagios.cfg &&
sed -i $'45 a \n' /usr/local/nagios/etc/nagios.cfg &&
sed -i $'45 a \n' /usr/local/nagios/etc/nagios.cfg &&
sed -i '46s#.*#cfg_file=/usr/local/nagios/etc/hosts.cfg#' /usr/local/nagios/etc/nagios.cfg &&
sed -i '47s#.*#cfg_file=/usr/local/nagios/etc/services.cfg#' /usr/local/nagios/etc/nagios.cfg &&
sed -i $'48 a \n' /usr/local/nagios/etc/nagios.cfg &&
' >> output.sh

期望的输出:

sed -i $'45 a \n' /usr/local/nagios/etc/nagios.cfg &&
sed -i $'45 a \n' /usr/local/nagios/etc/nagios.cfg &&
sed -i $'45 a \n' /usr/local/nagios/etc/nagios.cfg &&
sed -i '46s#.*#cfg_file=/usr/local/nagios/etc/hosts.cfg#' /usr/local/nagios/etc/nagios.cfg &&
sed -i '47s#.*#cfg_file=/usr/local/nagios/etc/services.cfg#' /usr/local/nagios/etc/nagios.cfg &&
sed -i $'48 a \n' /usr/local/nagios/etc/nagios.cfg &&

我得到的是:

sed -i  a n /usr/local/nagios/etc/nagios.cfg &&
sed -i  a n /usr/local/nagios/etc/nagios.cfg &&
sed -i  a n /usr/local/nagios/etc/nagios.cfg &&
sed -i 46s#.*#cfg_file=/usr/local/nagios/etc/hosts.cfg# /usr/local/nagios/etc/nagios.cfg &&
sed -i 47s#.*#cfg_file=/usr/local/nagios/etc/services.cfg# /usr/local/nagios/etc/nagios.cfg &&
sed -i  a n /usr/local/nagios/etc/nagios.cfg &&

如您所见,引号正在消失,无论我是使用单引号还是带回显的双引号。可能有除 ECHO 或某种通用括号之外的其他解决方案来在写入文件时保持代码不变?

cat <<EOF >> output.sh
sed -i $'45 a \n' /usr/local/nagios/etc/nagios.cfg &&
sed -i $'45 a \n' /usr/local/nagios/etc/nagios.cfg &&
sed -i $'45 a \n' /usr/local/nagios/etc/nagios.cfg &&
sed -i '46s#.*#cfg_file=/usr/local/nagios/etc/hosts.cfg#' /usr/local/nagios/etc/nagios.cfg &&
sed -i '47s#.*#cfg_file=/usr/local/nagios/etc/services.cfg#' /usr/local/nagios/etc/nagios.cfg &&
sed -i $'48 a \n' /usr/local/nagios/etc/nagios.cfg &&
EOF