[英]Linux: watch number of files in directory
我正在尝试编写一个Shell脚本,该脚本要等到指定目录(例如〜/ fit /)中的文件数量达到预定义的数量。 到目前为止,我得到的是:
limit = 10
while [ls ~/fit/ | wc -l -lt $limit]
do
sleep 1
done
这说-lt是wc的无效选项。 我也试过
[$limit -gt ls ~/fit/ | wc -l]
但它也不起作用。 任何帮助是极大的赞赏。
尝试:
limit=10
while [ `ls ~/fit/ | wc -l` -lt $limit ];
...
你需要:
limit=10
while [ `ls ~/fit/ | wc -l` -lt $limit ]
do
sleep 1
done
变化:
=
在limit=10
[
和]
周围应该有空格 ls ~/fit/ | wc -l
)放在后面的刻度中。 尝试这个
while(true)
do
var=`ls -l ~/fit/ | wc -l`
if [ $var -lt 10]
then
sleep 1
else
break
fi
done
一种解决方案,可最大限度地减少使用ls
, wc
和true
等外部进程,并true
管理包含换行符的文件名(不正常)的情况:
#!/bin/sh
nmax=10
while :; do
n=0
for f in ~/fit/*; do
n=$((n+1))
done
[ $n -ge $nmax ] && break
sleep 1
done
echo "Limit reached!"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.