我使用包含空格的一堆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脚本。
答案 0 :(得分:4)
您正在使用>
符号进行比较,它是重定向。使用-gt
。