Detener la shell de interpretar la salida de logging de git

Tengo un script para generar un set de cambios en cada compilation de Jenkins con los posts de confirmación recientes. El problema es que el nombre del autor contiene \ porque tiene el dominio, por lo que cuando escribo en el file, el intérprete del shell es una letra y no veo el <domain>\<name> real, en su lugar veo algo como <domain><name> . Mi script actual es el siguiente:

  git --git-dir=<git dir> log origin/${BUILD_NAME} --since \"$sinceDate\" --graph --oneline --pretty="%h %<(28)%ci %<(20)%an: %s" | while read item do printf "changeset: $item \r\n" >> //<destination>//change_set_${WEEK_NUMBER_DATE_HOUR}.txt; done 

Y como ejemplo de salida, obtengo algo como:

 changeset: * 0e27e683b 2017-09-26 09:35:16 +0300 SROjohn : #task #18856 

en lugar de

 changeset: * 0e27e683b 2017-09-26 09:35:16 +0300 SRO\john : #task #18856 

¿Hay alguna manera de evitar que shell interprete la "\"?

Una página de read POSIX:

Por defecto, a less que se especifique la opción −r , <backslash> actuará como un carácter de escape.

Use el read -r item .

Y, como @jthill agrega, una cadena de formatting constante para printf :

 printf 'changeset: %s \r\n' "$item" >> "//<destination>//change_set_${WEEK_NUMBER_DATE_HOUR}.txt" 

y citar $BUILD_NAME .