0

サーバー上の特定のクォータを持つユーザーを管理するためのスクリプトをいくつか作成しています。

したがって、グループquota10のすべてのユーザーに10GBのようなクォータを適用するために、「setquota -p」を使用していますが、いくつかのグループがあります。

そこで、すべてのグループのすべてのユーザーを管理するスクリプトを作成しました。

#!/bin/zsh
groups=(1002 1007)
for gid in $groups
    echo $gid
    echo $(awk -F: '$4 == gid {print $1}' gid=$gid /etc/passwd)

しかし、私がそれを実行すると、このグループのユーザーを私に与える最後のグループしかありません。

/ etc / passwd

kimino:x:1010:1002::/home/kimino:/bin/bash
kiminoo:x:1011:1007::/home/kiminoo:/bin/bash

/ etc / group

quota10:x:1002:
quota20:x:1007:

スクリプトの出力

# ./apply_quota_on_users.zsh
1002
1007
kiminoo

何が悪いのか分かりますか?

4

1 に答える 1

0

関数をブロックにラップする必要があります。

for gid in $groups
do
    echo $gid
    echo $(awk -F: '$4 == gid {print $1}' gid=$gid /etc/passwd)
done
于 2012-06-04T12:58:43.873 に答える