- 论坛徽章:
- 0
|
本帖最后由 hychdut 于 2012-05-11 03:21 编辑
我在当前目录有5个目录,目录名随机,简单起见,为1/,2/,3/,4/,5/, 其中在1/, 2/, 3/, 的目录里面分别有一个名字为a的文件,
我的目的是,在这五个目录里察看是否存在a文件,如果存在,那么我继续判断,这是否是第一次找到这个文件,如果是,我输出‘first’,如果不是,我输出‘more’。
以下为我的cshell脚本,
#!/bin/csh
set ntot=0
set nfind=0
foreach dir (`ls -d */`)
echo $dir
set ntot=`expr $ntot + 1`
if(-e $dir/a)then
set nfind=`expr $nfind + 1`
if( $nfind == 1)then
echo 'first'
endif
if( $nfind > 1)then
echo 'more'
endif
endif
end
echo $ntot, $nfind
我希望得到的结果是
1/
first
2/
more
3/
more
4/
5/
5, 3
但是我实际得到的结果却是
1/
first
2/
more
3/
more
4/
more
5/
more
5, 3
非常奇怪的结果, 因为4/,5/,目录下没有a文件,就不应该再继续向内层判断$nfind是否大于1啊。为什么还能进去呢?
求朋友们,帮帮忙!!给解释一下,我这个脚本哪儿写错了?怎样才能得到我想要的第一种结果呢?先谢谢了!!!
在线等,很急!!! |
|