У меня очень странная проблема с/bin/bash и скриптом, который использует printf для форматирования строки./bin/bash printf не работает с другим LANG, чем C
Мой сценарий выглядит следующим образом
rt=$(printf "%.3f" 13.234324245)
с той разницей, что я вычислить число 13.23 ... выше. Когда я использую/usr/bin/zsh, это отлично работает! Even/bin/sh может это сделать (но он не может делать что-то ...) Самая большая проблема ist, что/bin/bash, похоже, не понимает printf или имеет другой способ форматирования, когда я не использую LANG=C
.
My LANG переменная установлена в de_AT.UTF-8
, а затем я получаю эту ошибку:
/path/to/script: Zeile 12: printf: 13.234324245: Ungültige Zahl.
Так просто говорит о том, что число я дал Printf недействителен ...
мне нужно запустить Printf ли по-другому?
редактировать: Проблема, как представляется, на вычислении числа:
rt=$(printf "%.3f" $(echo "$res2 - $res1"|bc))
, как я могу сказать бв использовать ,
вместо .
?
Что интересно –
, но тогда, как я могу это сделать, когда поплавок пришедшего из нашей эры? это так? D: – reox
Вероятно, самая простая вещь в этом случае - использовать решение @ J-16 и заставить LANG = C. –