Este é um problema local. watch
usa strtod(3)
, que é dependente de código de idioma, para converter o argumento em -n
em double
.
Para corrigir o problema, você precisa especificar o argumento para -n
com um separador diferente:
watch -n 0,1 w
Ou altere sua localidade para uma configuração em que o caractere de período é usado para o ponto decimal:
export LC_NUMERIC=en_US.UTF-8
watch -n 0.1 w
Algumas referências:
- Uma parte relevante da página de manual do Linux para
strtod
:
A decimal number consists of a nonempty sequence of decimal digits possibly containing a radix character (decimal point, locale-dependent, usually '.')
-
Você pode revisar suas configurações atuais executando
locale
em seu terminal:locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" ...
-
O código-fonte em questão pode ser revisado no gitlab:
(edit 2017-09-07): links atualizados do gitlab