Если доступен gpasswd
(должен быть в большинстве дистрибутивов, кроме, например,Solaris) можно указать список пользователей, разделенных запятыми, за которым следует имя группы:
gpasswd -M userA,userB,userC mygroup
Через awk
и прибавив 0.5
к результату, .f
сам округлит его до ближайшего числа.
awk -F\= 'BEGIN{printf("%.f\n", $2+0.5)}'
if [[ '1' -eq "$(echo "$i > ${i%.*}" | bc)" ]]; then
i=$((${i%.*}+1))
else
i=${i%.*}
fi
Предположим, что bash.
Для обработки произвольного количества десятичных знаков нам нужна программа, допускающая произвольную точность, напримерbc
:
$ round(){ bc <<< "a=$1"'; scale=0; b=a/1; if (a==b) a else b+1'; }
$ for i do round "$i"; done
1.0000
2
2
2
Или обработать как текст:
$ round(){ reg='^([0-9]*)\.0*[1-9]'; [[ $1 =~ $reg ]] && echo "$((${1%%.*}+1))" || echo "$1"; }
$ set 1.0000 1.6 1.00001 1.00049
$ for i do round "$i"; done
1.0000
2
2
2