Попытка чтения из файла в существующем цикле for

Здравствуйте, мне трудно понять, как выполнить существующий сценарий, который я написал. В двух словах я пытаюсь установить дисковые квоты на основе существующего пользователя для любого пользователя, для которого не установлена ​​квота 100 МБ или 102400 как показано ниже в сценарии. Логика, кажется, работает в настоящее время, но у меня закончились идеи о том, как заполнить $USER переменная. Любая помощь будет оценена.

AWK=$(awk '{ print $4 }' test.txt)

USER=$(awk '{ print $1 }' test.txt)

for quota in $AWK;
do
    if [ "$quota" = 102400 ];
    then
        echo "Quota already set to 100MB for user: "$USER""
    else
        echo "Setting quota from template for user: $USER "
        edquota -p username "$USER"
    fi
done

test.txt файл ниже:

user1   --  245 0   0
user2   --  245 102400  102400
user3   --  234 102400  102400
user4   --  234 1   0

1 ответ

Используйте один цикл, который читает обе переменные из файла:

while read -r user a b quota c; do
    if [ "$quota" = 102400 ];
    then
        echo "Quota already set to 100MB for user: "$user""
    else
        echo "Setting quota from template for user: $user "
        edquota -p username "$user"
    fi
done < test.txt

a, b, а также c Переменные просто используются для пропуска этих полей во входном файле.

Другие вопросы по тегам