1

我的脚本中有一个循环,它将电子邮件地址列表附加到文件“$CRN”中。如果再次执行此脚本,它将附加到这个旧列表。我希望它用新列表覆盖,而不是附加到旧列表。如果需要,我可以提交我的整个脚本。我知道我可以测试“$CRN”是否存在然后删除文件,但我对其他一些建议感兴趣?谢谢。

    for arg in "$@"; do
            if ls /students | grep -q "$arg"; then
                    echo "${arg}@mail.ccsf.edu">>$CRN
                    ((students++))
            elif    ls /users | grep -q "$arg$"; then
                    echo "${arg}@ccsf.edu">>$CRN
                    ((faculty++))
    fi
4

1 回答 1

2

最好这样做:

CRN="/path/to/file"
:> "$CRN"

for arg; do
        if printf '%s\n' /students/* | grep -q "$arg"; then
                echo "${arg}@mail.ccsf.edu" >> "$CRN"
                ((students++))
        elif printf '%s\n'/users/* | grep -q "${arg}$"; then
                echo "${arg}@ccsf.edu" >> "$CRN"
                ((faculty++))
        fi
done
于 2013-09-25T21:50:03.450 回答