Niewytłumaczalny błąd w bash: polecenie printf w skrypcie zwraca „niepoprawną liczbę”
Nie mogę dostaćprintf
wydrukować zmienną z deskryptorem% e w skrypcie bash. Powiedziałbym tylko
#!/bin/bash
a=14.9
printf %e 14.9;
Wiem, że jest to bardzo proste pytanie, ale jestem całkiem nowy w bashu i zawsze używanyecho
. Poza tym nigdzie nie mogłem znaleźć odpowiedzi.
kiedy biegnę, dostaję
$ ./test.text
./test.text: line 3: printf: 14.9: invalid number
0,000000
dlatego moim problemem jest zmienna locale LC_NUMERIC: jest ustawiona tak, że używam przecinków jako separatorów dziesiętnych. Rzeczywiście, jest ustawiony na europejską lokalizację:
$ locale | grep NUM
LC_NUMERIC="it_IT.UTF-8"
Myślałem, że ustawiłem go na en_US.UTF-8, ale najwyraźniej tego nie zrobiłem. Teraz problem się przełącza, aby dowiedzieć się, jak ustawić zmienną ustawień narodowych. Po prostu używaj
$ LC_NUMERIC="en_US.UTF-8"
nie zadziała.