2017-08-31 79 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