Aqui está uma maneira de obter o que você procura, embora não use um loop for
, mas while
one:
stat=$(du /home/test/)
echo "$stat" | while read i; do
folder=$(echo "$i" | awk '{print $2}')
echo "mail content" | mail -s $folder [email protected]
done
Naturalmente, como Archemar já comentou, não há razão para não canalizar diretamente du
output para o loop:
du /home/test/ | while read i; do
folder=$(echo "$i" | awk '{print $2}')
echo "mail content" | mail -s $folder [email protected]
done
Awk
também não é necessário. O script pode ser simplificado dessa maneira:
du /home/test/ | while read size folder; do
echo "mail content" | mail -s "$folder" [email protected]
done
Como você parece não usar os tamanhos dos diretórios, que é o que du
foi projetado para calcular, você pode usar find
:
find /home/test -type d | while read folder; do
echo "mail content" | mail -s "$folder" [email protected]
done