Я не могу получить printf
для печати переменной с дескриптором% e в bash script. Он просто сказал бы
#!/bin/bash
a=14.9
printf %e 14.9;
Я знаю, что это, вероятно, очень простой вопрос, но я довольно новичок в bash и всегда использовал echo
. Плюс я не мог найти ответ нигде.
при запуске я получаю
$ ./test.text
./test.text: line 3: printf: 14.9: invalid number
0,000000
поэтому моя проблема - это локальная переменная LC_NUMERIC: она настроена так, что я использую запятые как десятичные разделители. Действительно, он настроен на европейскую локализацию:
$ locale | grep NUM
LC_NUMERIC="it_IT.UTF-8"
Я думал, что назначил его en_US.UTF-8, но, видимо, я этого не сделал. Теперь проблема переключается, чтобы определить, как установить переменную locale. Просто используя
$ LC_NUMERIC="en_US.UTF-8"
не будет работать.