Цикл passwd в сценарии оболочки
Как я могу сделать цикл для пользователей сервера с помощью сценария оболочки, я написал этот код..
#!/bin/bash
b=`awk -F: '{ print $1 }' /etc/passwd | sort`
for $b in /home/$b/ /home/$b/ /home/$b/
echo "$b"
done
я хочу зациклить всех пользователей и показать его
пользователи любят в файле
/etc/passwd
лайк:
root,admin,cpanel,adm,mysql,user1,user2,user3,user4,user5
я хочу вывод:
/home/adm
/home/root
/home/admin
/home/mysql
/home/user1
/home/user2
и спасибо
1 ответ
Решение
Печатать /home/
перед каждым именем пользователя:
$ awk -F: ' { print "/home/"$1 }' /etc/passwd | sort
/home/avahi
/home/backup
/home/bin
/home/clamav
/home/colord
/home/daemon
[...snip...]
Если вам нужны настоящие домашние каталоги, вы можете найти их в поле 6:
$ awk -F: ' { print $6 }' /etc/passwd | sort
/dev/null
/home/john1024
/nonexistent
/root
Вы также можете получить доступ к шестому полю, используя cut
:
cut -d: -f6 /etc/passwd | sort
Печать нескольких каталогов
Согласно пересмотренному вопросу в комментариях:
$ awk -F: ' { p="/home/"$1; printf "%s\n%s\n%s\n",p"/www",p"/ftp",p"/etc" }' /etc/passwd | sort
/home/avahi/etc
/home/avahi/ftp
/home/avahi/www
/home/backup/etc
/home/backup/ftp
/home/backup/www
[...snip...]