Попытка чтения из файла в существующем цикле 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
Переменные просто используются для пропуска этих полей во входном файле.