现在有个文件名的列表1.list 存储了文件名称a b c d,有个aa目录下有文件a.txt b.txt c.txt 怎么编写shell脚本,打印出1.list里面存在,但aa目录没有文件的名称,也就是打印出d 方法一: for f in `cat 1.list`; do if [ ! -f ${aa}${f}.txt ];then echo ${f}; fi; done 方法二: #!/bin/bash for i in `ls aa/*.txt`; do filename=`basename $i` echo ${filename%.*} >> 1.list.cur done diff 1.list.cur 1.list | grep '^>' | awk '{print $2}' rm 1.list.cur 注:在德问网看到的一个shell编程,很久没看了shell了,有点忘了。