Изменение масштаба масштабированного значения с помощью команды bc

Есть несколько способов сделать это.

Если вы, вероятно, часто будете делать подобные вещи, возможно, вам стоит изучить Ansible или другие подобные инструменты автоматизации.

Если это -ошибка, вероятно, самый простой способ — скопировать эти команды в скрипт,scpсценарий на удаленные машины, а затем удаленно выполнить их с помощьюssh:

$ for host in cs-{2..4}; do scp my-script.sh myuser@"$host":; ssh -t $host "sudo./my-script.sh"; done

Кроме того, если вы уверены в своей команде sed, вместо того, чтобы вручную записывать временный файл и копировать новый на место, вы можете сделать что-то вроде:

sed --in-place 's/aes128-ctr/aes129-ctr/;s/aes130-ctr/aes131-ctr/;s/aes132-ctr/aes133-ctr/' /etc/ssh/sshd_config

Так как это одна команда, вы можете просто для каждого хоста:

$ ssh user@host "sed --in-place 's/aes128-ctr/aes129-ctr/;s/aes130-ctr/aes131-ctr/;s/aes132-ctr/aes133-ctr/' /etc/ssh/sshd_config"

0
10.04.2021, 09:20
1 ответ

Если вас не беспокоит округление в bc, вы можете сделать:

$ echo "scale=10 ; "$val/1" " | bc
111.1080555135

Когда значение делится (даже на 1 ), количество десятичных знаков корректируется до scale.

Конечно, вы всегда можете снова использовать оболочку printf (, некоторые округления могут пролезть в ).

$ printf '%5.10f\n' "$val"
111.1080555135

Зачем нужна точность?

1
28.04.2021, 22:53

Теги

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