Tengo un problema realmente extraño con/bin/bash y un script que utiliza printf para formatear una cadena./bin/bash printf no funciona con otro LANG que C
Mi script se parece a esto
rt=$(printf "%.3f" 13.234324245)
con la diferencia, de que puedo calcular el número 13.23 ... arriba. ¡Cuando uso/usr/bin/zsh eso funciona genial! Incluso/bin/sh puede hacerlo (pero no puede hacer las cosas si ...) El mayor problema es que/bin/bash parece no entender printf o tiene otra forma de formateo cuando no uso LANG=C
.
Mi LANG variable se establece en de_AT.UTF-8
y luego me sale este error:
/path/to/script: Zeile 12: printf: 13.234324245: Ungültige Zahl.
Así que simplemente dice que el número i di printf no es válido ...
Qué necesito para ejecutar printf ¿de una manera diferente?
edición: El problema parece estar en el cálculo del número:
rt=$(printf "%.3f" $(echo "$res2 - $res1"|bc))
cómo puedo decirle bc utilizar un ,
en lugar de .
?
Eso es interesante –
pero entonces, ¿cómo puedo hacer que cuando el flotador está viniendo de BC? sed? D: – reox
Probablemente lo más fácil en este caso es usar la solución de @ J-16 y forzar LANG = C. –