Você tem alguns erros no seu script. Você não pode ter espaços ao redor do sinal de igual em uma atribuição. Para atribuir a saída de uma função ou programa a uma variável, é necessário usar a substituição de comando, o que significa que o nome do comando é circundado por $()
(o que é preferível) ou backticks (o que é menos desejável). Além disso, quando você chama uma função, você não usa parênteses após o nome da função como faria em outros idiomas.
generate () {
date +%T
}
TIME=$(generate)
echo " Current Time: $TIME"
O erro $'\r'
vem de ter terminações de linha do Windows. Você pode usar dos2unix
para converter o arquivo ou usar um editor para escolher com qual tipo de final para salvar um arquivo.
dos2unix script.sh