Reindirizzare l'output standard nuovo file aggiunge strano personaggio alla fine del nome del file in Cygwin
Domanda
Ho problemi con uno script di shell in Cygwin. Il comando specifico che sta causando il problema è questo:
sed -e "s/6.0.[0123456789]\{1,\}/6.0.${REV}/g" "path/to/file/config.xml" > "path/to/file/config.xml.tmp"
Il problema è che il file è stato creato con un carattere strano, alla fine, così invece di essere chiamato config.xml.tmp, è chiamato "config.xml.tmp". Dal comando "ls" e dalle finestre prompt dei comandi, sembra che "config.xml.tmp?"
Se si esegue il comando sed solo dalla shell, il file denominato in modo corretto, e lo script funziona bene in Linux.
Qualche idea di cosa potrebbe essere sbagliato? Grazie!
Soluzione
La mia ipotesi è che il vostro file di script non ha fine riga di UNIX. Il carattere \r
nella linea di Windows finale è quello che sta ottenendo aggiunto alla fine del nome del file. È possibile controllare con od
o hexdump
per vedere se questo è il problema.