printf
bashスクリプトで%e記述子を使用して変数を出力できません。それはただ言うだろう
#!/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に設定したと思いましたが、明らかに設定しませんでした。ここで、問題は、ロケール変数の設定方法を見つけるために切り替わります。単に使用する
$ LC_NUMERIC="en_US.UTF-8"
動作しません。