导致15行bash脚本导致名为' 0'的文件的原因是什么?在退出?

时间:2015-08-09 13:39:43

标签: bash

我使用包含空格的一堆Windows样式文件名从Web上删除了一些文件。

为了在需要搜索带空格的文件时加快速度,我编写了一个小脚本。

所以不要输入:

locate -i bad|grep -i file|grep -i name

我输入:     findbadname.sh错误的文件名

问题是,它运行后会留下一个名为' 0' (零)在它运行的目录中。

$ ls
$ findbadname.sh this is a bad filename
$ ls
0

我无法弄清楚原因。这是我的剧本:

#!/bin/sh
count=0

for a in $@ ; do
    if [ $count = 0 ]; then
            command='locate -i '$a
    fi
    if [ $count > 0 ]; then
            suffix='|grep -i --colour '$a
            command=$command$suffix
    fi
    count=$count+1
done

eval $command

我怀疑它是eval命令,但不知道还有什么可以尝试。 我尝试将eval $command更改为$($command),但它没有用。我得到了:

$ ./findbadname.sh this is a bad filename
locate: unrecognized option '--colour'

我知道我可以修复错误的文件名。我写了一个脚本来做到这一点,但这些是一个网站的一部分,它已经更新并且有HTML链接,必须与它一起修复,所以现在,我正在使用这个findbadname.sh脚本。

1 个答案:

答案 0 :(得分:4)

您正在使用>符号进行比较,它是重定向。使用-gt