¿Está bien escrita esta sintaxis? [Solucionado]

Necesito saber si está bien escrita esta sintaxis:

for i in *.po; do msgfmt -o `basename $i .po`.mo $i; done

Lo que pretendo es pasar 80 archivos de *.po a *.mo que están en un mismo directorio...

No sé en qué foro abrir el hilo...

Consulta, no probaste ejecutarla para ver que hace??

Tienes un problema con ese comando:
Si pones $i "a pelo" y el nombre del fichero tiene espacios, te va a dar problemas.
Sería mejor que lo pusieses así:

for i in *.po; do msgfmt -o `basename "$i" .po`.mo "$i"; done

Esto sin meterme en si el script es correcto o no.

Si lo que quieres es renombrar los ficheros sería más fácil hacer esto:

for i in  *.po;do mv "$i" "${i%.po}".mo;done

Lo que va después del % queda eliminado y después se añade el .mo al nombre.

No te compliques, echa un vistazo a esto:

man rename

Lo que necesitaba era compilar la traducción de Kontact 4.4.7, por eso utilicé el comando msgfmt. Probé la sintaxis que puse y funcionó. Igual gracias a todos.

PabliNet escribió:

Lo que necesitaba era compilar la traducción de Kontact 4.4.7, por eso utilicé el comando msgfmt. Probé la sintaxis que puse y funcionó. Igual gracias a todos.

¿y no podías haberla probado desde el principio?

anda que... que ganas de hacernos perder el tiempo.

Cerrado y a la papelera.