对“不存在的文件”使用“>>”重定向运算符

时间:2015-04-03 06:49:15

标签: shell

我的代码是:

#!bin/bash
n=1
for i in `ls 201*`
do
    if [ "$n" -gt 8 ]
    then
        awk -F "\x01" '{print $1}' $i | sort | uniq >> temp
        let "n++"
    else
        sort temp | uniq -c | awk '$1>3' | wc -l >> result.txt
        rm temp
        n=1
    fi
done

我想计算每周出现三次以上的人数。错误消息是:

sort: open failed: temp: No such file or directory
rm: cannot remove `temp': No such file or directory

此代码有什么问题?

2 个答案:

答案 0 :(得分:1)

我认为你想要if [ "$n" -lt 8 ]而不是if [ "$n" -gt 8 ]

只有当n 大于 8时才增加它,否则你将其设置为1.所以你从" else"开始分支,永远不会到达"然后"。

答案 1 :(得分:1)

执行的第一件事是else stmt,它期望temp存在。您的错误位于sort temp