Поэтому я застрял при попытке создать скрипт bash в то время как функция цикла, которая принимает входные данные из /etc /passwd и выводит, сколько пользователей использует bash, nolongin, csh и ksh. Я считаю, что я должен использовать кошку и вырезать. И я знаю, что тип оболочки, которую использует пользователь, находится в седьмом поле.
Правильно ли я считаю, что я должен создать переменную для каждого типа оболочки и увеличивать ее каждый раз, когда находит пользователя, который использует эту конкретную оболочку?
Пока это код, который у меня есть, но по какой-то причине он выводит только последний оператор if ..
declare -i bash;
declare -i nologin;
declare -i csh;
declare -i ksh;
bash=0;
nologin=0;
csh=0;
ksh=0;
cat /etc/passwd | cut -d: -f7 $line | while read line;
do
if [ $line == "bash" ]
then
bash=bash+1;
else fi [ $line == "/sbin/nologin" ]
then
nologin=nologin+1;
else fi [ $line == "chs" ]
then
chs=chs+1;
else
then
ksh=ksh+1;
fi
done
Обновление: пока я изменил код и обновил то, что у меня есть. Он перебирает и выдает правильную часть оператора if, но у меня возникают проблемы при попытке увеличить мои переменные.