Zsh:for循环使awk模式失败

时间:2012-06-04 12:54:17

标签: for-loop zsh

我正在编写一些脚本来管理服务器上具有特定配额的用户。

因此,要向组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 /组

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

我的剧本输出

# ./apply_quota_on_users.zsh
1002
1007
kiminoo

你知道什么是错的吗?

1 个答案:

答案 0 :(得分:0)

你必须将你的功能包装在一个块中:

for gid in $groups
do
    echo $gid
    echo $(awk -F: '$4 == gid {print $1}' gid=$gid /etc/passwd)
done