экранируешь все доллары и делаешь cat через DocumentHere:
cat <<EOF >newfile.sh
...
EOF
Вот полный пример, можно этот текст поместить в скрипт, выполнить или вставить целиком из буфера, или набрать от руки, и он сделает тебе новый file.sh
cat <<EOF>file.sh
#/bin/sh
inetADD=\$1
#GATEWAY=
#DNS1=
NETMASK=255.255.255.128
ip address | grep -v lo | cut -d ' ' -f2 | tr ':' '\n' | awk NF
echo "Enter interface:"
read nameINT
uuid=\$(\$nameINT)
echo -e "NAME=\$nameINT\nDEVICE=\$nameINT\nBOOTPROTO=static\nUUID=\$uuid\nONBOOT=yes\nIPADDR=\$1\nNETMASK=\$NETMASK" >> /etc/sysconfig/network-scripts/ifcfg-\$nameINT
ifdown \$nameINT && sleep 3 && ifup \$nameINT
if [ "\$(ping -c 1 -I \$nameINT 192.168.1.1)" ] then
echo "Ping GOOD. System EXIT"
exit
else
echo "Reloading the interface"
ifdown \$nameINT && sleep 10 && ifup \$nameINT
ping -c 1 -I \$nameINT 192.168.1.1
echo "ERROR"
fi
EOF