bash Переменная в heredoc (создание файла или другого скрипта из текущего)

Предположим, у вас есть bash-код вроде:

cat >  /etc/init.d/docker-up.sh << EOF
#! /bin/bash
case "$1" in 
    start)
       start
       ;;
    stop)
       stop
       ;;
    *)
       echo "Usage: $0 {start|stop|status|restart}"
esac

exit 0 

EOF

-- при создании файла переменные ( в данном случае $1 и $0) заменятся на свои текущие значения (на момент выполнения основного скрипта), если мы хотим чтобы они попали в неизменном виде в создаваемый с помощью heredoc-нотации файл, нам надо использовать обратный слэш для экранирования, например:

cat >  /etc/init.d/docker-up.sh << EOF
#! /bin/bash
case "\$1" in 
    start)
       start
       ;;
    stop)
       stop
       ;;
    *)
       echo "Usage: \$0 {start|stop|status|restart}"
esac

exit 0 

EOF

Key Words for FKN + antitotal forum (CS VSU):