Como instalar uma função bash contendo variáveis usando um script bash? [duplicado]
Esta pergunta já tem uma resposta aqui:
Como evitar variáveis de expansão heredoc? [duplicado] 2 respostasEstou tentando criar um script bash que me permita instalar a mesma função bash em várias máquinas. Esta função específica cria uma cópia de um arquivo com um carimbo de data / hora em um diretório de backup:
filebackup () { cp "${@}" ~/"filebackup/${@}_$(date +%Y-%m-%d_%H:%M:%S).bk"; }
Aqui está o meu 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
Quando executo o script, no entanto, o${@}
estão faltando e o$(date +%Y-%m-%d_%H:%M:%S)
foi avaliado. Aqui está o que foi anexado ao.bashrc
Arquivo:
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# create a file backup in ~/filebackup/ with timestamp
filebackup () { cp "" ~/"filebackup/_2017-01-05_12:07:56.bk"; }
Como posso garantir que a função seja copiada literalmente no arquivo?