używam włoskiej lokalizacji Cygwin i dlatego moja polecenia printf używa do odrębnych pływaków przecinki, i nie zrozumie kropka oddziela pływakówJak zmienić separator dziesiętny w komendzie printf w bash?
$ printf "%f" 3.1415
-bash: printf: 3.1415: invalid number
0,000000
$ printf "%f" 3,1415
3,141500
Prowadzi to do wielu problemów, ponieważ w zasadzie wszystko wykorzystuje kropkę do oddzielania cyfr dziesiętnych.
Jak zmienić separator dziesiętny z przecinka na kropkę?
Można po prostu ustawić 'LC_NUMERIC =" en_US.UTF- 8 "', ale to nie zmienia ustawienia w całym systemie, ale w zakresie skryptu lub powłoki, w której to ustawienie jest wykonywane. Poza tym możesz zmienić ustawienia narodowe tylko dla polecenia przez 'LC_NUMERIC =" en_US. UTF-8 "printf"% f "3.1415". – jarno
Zobacz poniżej odpowiedź na lepsze rozwiązanie (IMO), które działa niezależnie od ustawień regionalnych, które zainstalowałeś. – mav