1

我想批量循环一个目录中的一系列文件,然后在目录为空时退出。

在 $work 'myprog' 实际上是一个程序,它以 100 个批次处理(和归档)Maildir 中的传入电子邮件。

我追求一些可以放入 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

有任何想法吗?

4

1 回答 1

2

我想你可以这样做:

#!/bin/bash
# ...
while (ls foo/* &> /dev/null); do myprog; sleep 1; done

如果没有匹配 foo/* (如果目录 foo 中没有可见文件),ls将失败。&> /dev/null 保持ls安静。

于 2010-03-25T19:36:25.707 回答