我已经开始编写一小段代码来打印所有可用的Linux用户列表。 但是我想把一个接一个的用户传到我的命令中来一起显示每个用户的详细信息。
列出所有用户
root@bt# getent passwd | grep /home/ | cut -d ':' -f 1 root san postgres
root@bt# chage -l ${user1} ; chage -l ${user2} etcc.
我应该需要用户循环或while循环吗? 任何人可以帮助我build议如何写同样的?
在按下键时停止C ++中的无限循环
Bash脚本继续关键字不断开循环迭代
超时或用户input在Python循环中重复
禁用Windows允许通过批处理循环为USB设备节电
Bash读取txt文件并存储在数组中
循环/定时器在C
Bash:循环直到命令退出状态等于0
你可以使用while循环:
getent passwd | grep /home/ | cut -d ':' -f 1 | while read user ; do chage -l "$user" done
或for循环:
for user in $(getent passwd | grep /home/ | cut -d ':' -f 1) ; do chage -l "$user" done
或xargs :
getent passwd | grep /home/ | cut -d ':' -f 1 | xargs -n1 chage -l
我会使用xargs ,它在前一个管道的每个输出项目上运行一个命令:
getent passwd | grep /home/ | cut -d ':' -f 1 | sudo xargs -I % sh -c '{ echo "User: %"; chage -l %; echo;}'
sudo用于获取有关所有用户的信息,如果您无法访问此信息,则可以删除sudo
-I %用于指定%是输入项目的占位符(在您的情况下是用户)
sh -c '{ command1; command2; ...;}' sh -c '{ command1; command2; ...;}'是由xargs在每个% item上执行的命令; 反过来,命令sh -c允许执行多个shell命令
'{echo“User:%”; chage -l%; echo;}'以%为单位回显当前用户,然后在这个用户上运行chage -l ,并用最后的空echo完成输出的格式化
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。