¿Cómo instalar una función bash que contiene variables usando un script bash? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo evitar las variables de expansión heredoc? [duplicar] 2 respuestas

Estoy intentando crear un script bash que me permita instalar la misma función bash en varias máquinas. Esta función particular crea una copia de un archivo con una marca de tiempo en un directorio de respaldo:

filebackup () { cp "${@}" ~/"filebackup/${@}_$(date +%Y-%m-%d_%H:%M:%S).bk"; }

Aquí está mi script bash:

cat <<EOT >> ~/.bashrc
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# create a file backup in ~/filebackup/ with timestamp
filebackup () { cp "${@}" ~/"filebackup/${@}_$(date +%Y-%m-%d_%H:%M:%S).bk"; }
EOT

source ~/.bashrc

Cuando ejecuto el script, sin embargo, el${@} faltan y el$(date +%Y-%m-%d_%H:%M:%S) ha sido evaluado Esto es lo que se ha agregado al.bashrc archivo:

# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# create a file backup in ~/filebackup/ with timestamp
filebackup () { cp "" ~/"filebackup/_2017-01-05_12:07:56.bk"; }

¿Cómo puedo asegurarme de que la función se copia literalmente en el archivo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta