2017-08-31 32 views
0

我想用新的组ID更新/etc/group中的组名。使用新的组ID更新/ etc/group

假设/etc/group有一个条目,如group1 345

当我运行该脚本./grp.sh group1 356那么它应该与价值group1 356更新/etc/group

我写了以下script grp.sh但它不工作。一些问题与grep -q "^$1:[^:]*:$2:

#!/usr/bin/env bash 
    grep -q "^$1:[^:]*:$2:" /etc/group || /usr/sbin/groupmod -g "$2" "$1" 
+0

我认为groupmod工作正常...什么ü认为有正则表达式的grep'-q“1^$的问题:[^:] *:$ 2:' – meallhour

+0

为什么你是通过文件而不是使用'groups'或'getent'来代替吗? –

+0

可以帮助更新脚本 – meallhour

回答

1

grep -q "^$1:[^:]*:$2:" /etc/group ||似乎并不需要。仅这应该工作:

#!/usr/bin/env bash 
/usr/sbin/groupmod -g "$2" "$1" 
+0

但在我上面的例子中,我不想运行groupmod如果输入参数是'./grp.sh group1 345' – meallhour

+0

当组'$ 1'已经有gid'$ 2'时会发生什么?我认为grep部分是有防止错误信息 – Socowi

+0

@Socowi,SFAIK,没有任何反应(或者没有任何改变*)如果组' $ 1'已经有gid'$ 2'。 – agc