Какой текущий десятичный разделитель?

Я нашел ответ :Мне нужно было изменить последнюю строку служебного файла на:

WantedBy=postgresql.service

Таким образом, всякий раз, когда запускается Postgres, моя служба тоже запускается -, но если моя служба дает сбой, это не останавливает Postgres.

Директивы в секции [Install]влияют только на включение и отключение устройств. Но все было не так просто, когда мой сервис уже был включен:

# systemctl enable tabill.service
Failed to execute operation: Too many levels of symbolic links

Сообщение об ошибке вводило в заблуждение. Исправить это было просто:

# systemctl disable tabill.service
Removed symlink /etc/systemd/system/tabill.service.
Removed symlink /etc/systemd/system/multi-user.target.wants/tabill.service.

# systemctl enable tabill.service
Failed to execute operation: No such file or directory

# systemctl enable /srv/tabill/tabill.service
Created symlink from /etc/systemd/system/postgresql.service.wants/tabill.service to /srv/tabill/tabill.service.
Created symlink from /etc/systemd/system/tabill.service to /srv/tabill/tabill.service.

Теперь моя служба останавливается и запускается всякий раз, когда это делает Postgres. И естественно Postgres запускается при загрузке системы.

29
12.09.2019, 14:11
1 ответ

Если это сценарий оболочки zsh, вы можете использовать специальный ассоциативный массив $langinfoв модуле zsh/langinfo:

zmodload zsh/langinfo
radix=$langinfo[RADIXCHAR]

(, который соответствует стандарту nl_langinfo(RADIXCHAR), подробности см. в man nl_langinfoвашей системы; $langinfo[THOUSEP]для разделителя тысяч ).

В скрипте bash(также будет работать в zsh), вы сможете получить его без разветвления отдельного процесса с помощью встроенной printf:

printf -v radix %.1f 1 && radix=${radix:1:1}

Чтобы преобразовать число из формата локали пользователя в формат локали C, с оболочкой ksh93, вы можете сделать это следующим образом:

$ locale title
German locale for Germany
$ x=1.123.456,78 ksh -c 'typeset -F x="$x"; LC_ALL=C; printf "%.23g\n" "$x"'
1123456.78
6
27.01.2020, 19:38

Теги

Похожие вопросы