2011-04-17 13 views

Respuesta

183

echo añade un \n ya que por lo general no desea que las líneas no se termina con un salto de línea en su concha (se ve muy feo si el indicador no se inicia en la parte izquierda).
utilizar el argumento -n omitir el salto de línea de arrastre y se imprimirá la misma suma de control como la secuencia de comandos de Python:

> echo -n mystringforhash | md5sum 
86b6423cb6d211734fc7d81bbc5e11d3 - 
+50

En realidad, este es uno de los grandes ejemplos que utilizo cuando le digo a la gente a usar más Python o nivel higer idiomas en lugar de scripts de shell para el trabajo que normalmente se considera mejor en scripts de shell. La naturaleza de los datos y códigos mixtos, y una sintaxis diferente para cada comando hacen que los guiones de shell sean invisiblemente propensos a errores – jsbueno

+6

Si solo se da una "cáscara" no se puede confiar en que 'echo' tenga un indicador' -n' viable. POSIX dice sobre "echo": "Si el primer operando es' -n', o si alguno de los operandos contiene un caracter '', los resultados están definidos por la implementación. " (fuente: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html). Use 'printf' en su lugar. –

Cuestiones relacionadas