Je veux boucler une série de fichiers dans un répertoire par lots, puis quitter lorsque le répertoire est vide.Comment quitter une boucle de bash en utilisant ls?
Au travail de $ « myprog » est en fait un programme qui traite (et archives) courrier électronique entrant dans un Maildir par lots de 100.
Je suis après quelque chose de simple que je peux mettre en Cron.
#!/bin/bash
# Setup
mkdir -p foo && touch foo/file_{1,2,3,4}.txt
alias myprog='f=`ls foo/file_*.txt | head -n1`; rm -v $f'
# Loop and then exit ?!
# This line to go into cron.
while (ls foo); do ls foo/ | wc -l; myprog; sleep 1; done
Des idées?
Vous pouvez faire des plages dans l'expansion de l'accolade: '{1..4}' –
Et encore mieux, vous pouvez être PORTATIF et utiliser la globalisation appropriée 'file_ [1234]'. :) – vladr