Bash - execute scripts perfeitamente com terminações de linha CRLF

Estou usando a VM (no meu caso, simplesmente boot2docker) para executar contêineres do docker no host do Windows. Por conveniência, meus arquivos de origem são mapeados no sistema de arquivos host, portanto, os arquivos de texto são por padrão usando terminações de linha CRLF no estilo Windows em vez de terminações LF no estilo Unix.

Quando tento executar algum arquivo .sh do contêiner do docker, recebo um erro

bash: ./script.sh: /bin/bash^M: bad interpreter: No such file or directory

Existe uma maneira de como eu poderia dizer ao interpretador bash / sh para converter automaticamente \ r \ n para \ n e executar um arquivo?

Claro, eu poderia fazer um piplelining como estecat script.sh | tr -d "\r" | sh ou até criar um alias para isso, mas não cobriria a situação em que um script inclui outro.

A única solução aceitável que encontrei até agora é configurar o Git para fazer o checkout dos arquivos de origem no formato UNIX.

questionAnswers(4)

yourAnswerToTheQuestion