#!/bin/bash
GROUPS=$(cut -d: -f1 /etc/group)
echo "$GROUPS"
如果我是普通用户,则此代码的输出为1000;如果我是root用户,则此代码为0,而执行同一命令(
cut -d: -f1 /etc/group
)时,将返回计算机上所有可用组的列表。我也尝试使用grep "" /etc/group
,但是产生相同的结果。我什么不来? 最佳答案
正确的方法是getent group|cut -d: -f1
,因为身份验证方法比/ etc / group多。例如sql,ldap等...
并且不建议在shellscript中使用大写的变量名-正是为了防止这种情况。
关于linux - 通过bash脚本列出计算机上的所有组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39231389/