linux脚本存在在哪里,如何在Linux Shell脚本中检查组是否存在并添加组(如果不存在)...

问题描述

这是我希望我的代码执行的摘要:

if (group exists)

then

(add user to group)

else

(create group)

(add user to group)

fi

我正在使用Ubuntu虚拟机,但在类似站点上发现的所有结果均无法正常运行。

最佳答案

该脚本可以帮助您:

read -p "enter group name: " group

if grep -q $group /etc/group

then

echo "group exists"

else

echo "group does not exist"

fi

次佳答案

rups解决方案中的grep语句存在一些缺陷:

例如。当存在组lpadmin时,组admin的grepping可能返回true(“group exists”)。

修复grep -query

grep -q -E "^admin:" /etc/group

或使用

if [ $(getent group admin) ]; then

echo "group exists."

else

echo "group does not exist."

fi

第三种答案

捕获/etc /group可以,但是只能在/etc/nsswitch.conf具有以下内容的机器上:

group: files

这意味着在确定可用组时仅参考/etc /group。使用:

getent group

对于更通用的解决方案,请检查退出状态:0表示”exists”,非零表示“不存在”。例如,要检查组’postgres’是否存在,如果不存在,请创建该组(假设bash shell,以能够创建新组的用户身份运行),请运行:

/usr/bin/getent group postgres 2>&1 > /dev/null || /usr/sbin/groupadd postgres

第四种答案

我发现将Andiba的解决方案组合成适当的功能更加有用:

function grpexists {

if [ $(getent group $1) ]; then

echo "group $1 exists."

else

echo "group $1 does not exist."

fi

}

例如,可以通过在/etc/bash.bashrc*中包含此函数来将其调用到您的环境中,以便您可以使用以下拼写检查组是否存在:

grpexists group_name

然后应该返回以下之一:

group group_name exists.

要么

group group_name does not exist.

参考资料

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值